Skip to content

Commit 1c97497

Browse files
committed
-修复 ZeroDbContext 多表 Schema 问题;
1 parent df0acfc commit 1c97497

File tree

2 files changed

+209
-237
lines changed

2 files changed

+209
-237
lines changed

Extensions/FreeSql.Extensions.ZeroEntity/ZeroDbContext.SelectImpl.cs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -538,8 +538,9 @@ NativeTuple<string, ColumnInfo, string> ParseField(ZeroTableInfo firstTable, str
538538
{
539539
if (string.IsNullOrEmpty(property)) return null;
540540
var field = property.Split('.').Select(a => a.Trim()).ToArray();
541-
542-
if (field.Length == 1)
541+
var fieldCopy = field.ToArray();
542+
if (fieldCopy.Length == 3) field = new[] { string.Join(".", field.Take(field.Length - 1)), field[2] };
543+
if (field.Length == 1)
543544
{
544545
if (firstTable != null && firstTable.ColumnsByCs.TryGetValue(field[0], out var col2) == true)
545546
return NativeTuple.Create($"{firstTableAlias}.{_common.QuoteSqlName(col2.Attribute.Name)}", col2, firstTableAlias);
@@ -566,8 +567,9 @@ NativeTuple<string, ColumnInfo, string> ParseField(ZeroTableInfo firstTable, str
566567
}
567568
if (_tableAlias.Where(a => a.Alias == field[0]).FirstOrDefault()?.Table.ColumnsByCs.TryGetValue(field[1], out col2) == true)
568569
return NativeTuple.Create($"{field[0]}.{_common.QuoteSqlName(col2.Attribute.Name)}", col2, field[0]);
570+
if (fieldCopy.Length == 3) field = fieldCopy.ToArray();
569571
}
570-
572+
571573
var navPath = string.Join(".", field.Skip(1).Take(field.Length - 1));
572574
var ta = _tableAlias.Where(a => string.Join(".", a.NavPath) == navPath).FirstOrDefault();
573575
if (ta?.Table.ColumnsByCs.TryGetValue(field.Last(), out var col) == true)

0 commit comments

Comments
 (0)