解决 AsType 相同表不同类型错误

https://github.com/dotnetcore/FreeSql/issues/791
This commit is contained in:
jinghongbo 2021-06-09 11:16:30 +08:00 committed by GitHub
parent 4c8aa6ba0d
commit e8941be89e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1,4 +1,4 @@
using FreeSql.Internal.Model; using FreeSql.Internal.Model;
using System; using System;
using System.Collections; using System.Collections;
using System.Collections.Concurrent; using System.Collections.Concurrent;
@ -373,7 +373,7 @@ namespace FreeSql.Internal.CommonProvider
} }
public GetAllFieldExpressionTreeInfo GetAllFieldExpressionTreeLevelAll() public GetAllFieldExpressionTreeInfo GetAllFieldExpressionTreeLevelAll()
{ {
return _dicGetAllFieldExpressionTree.GetOrAdd($"*{string.Join("+", _tables.Select(a => $"{_orm.Ado.DataType}-{a.Table.DbName}-{a.Alias}-{a.Type}"))}", s => return _dicGetAllFieldExpressionTree.GetOrAdd($"*{string.Join("+", _tables.Select(a => $"{_orm.Ado.DataType}-{a.Table.DbName}-{a.Table.CsName}-{a.Alias}-{a.Type}"))}", s =>
{ {
var type = _tables.First().Table.TypeLazy ?? _tables.First().Table.Type; var type = _tables.First().Table.TypeLazy ?? _tables.First().Table.Type;
var ormExp = Expression.Parameter(typeof(IFreeSql), "orm"); var ormExp = Expression.Parameter(typeof(IFreeSql), "orm");
@ -528,9 +528,9 @@ namespace FreeSql.Internal.CommonProvider
if (_OldAuditDataReaderHandler != _orm.Aop.AuditDataReaderHandler) if (_OldAuditDataReaderHandler != _orm.Aop.AuditDataReaderHandler)
{ {
_OldAuditDataReaderHandler = _orm.Aop.AuditDataReaderHandler; //清除单表 ExppressionTree _OldAuditDataReaderHandler = _orm.Aop.AuditDataReaderHandler; //清除单表 ExppressionTree
_dicGetAllFieldExpressionTree.TryRemove($"{_orm.Ado.DataType}-{_tables[0].Table.DbName}-{_tables[0].Alias}-{_tables[0].Type}", out var oldet); _dicGetAllFieldExpressionTree.TryRemove($"{_orm.Ado.DataType}-{_tables[0].Table.DbName}-{_tables[0].Table.CsName}-{_tables[0].Alias}-{_tables[0].Type}", out var oldet);
} }
return _dicGetAllFieldExpressionTree.GetOrAdd(string.Join("+", _tables.Select(a => $"{_orm.Ado.DataType}-{a.Table.DbName}-{a.Alias}-{a.Type}")), s => return _dicGetAllFieldExpressionTree.GetOrAdd(string.Join("+", _tables.Select(a => $"{_orm.Ado.DataType}-{a.Table.DbName}-{a.Table.CsName}-{a.Alias}-{a.Type}")), s =>
{ {
var tb1 = _tables.First().Table; var tb1 = _tables.First().Table;
var type = tb1.TypeLazy ?? tb1.Type; var type = tb1.TypeLazy ?? tb1.Type;
@ -1172,4 +1172,4 @@ namespace FreeSql.Internal.CommonProvider
#endif #endif
#endregion #endregion
} }
} }