add PgArrayToMany IncludeMany Dto test #1147

This commit is contained in:
2881099
2022-06-06 19:20:59 +08:00
parent 24d072409d
commit 1a0f0d0f02
3 changed files with 24 additions and 1 deletions

View File

@ -222,6 +222,17 @@ namespace FreeSql.Internal.CommonProvider
var bindings = new List<MemberBinding>();
if (imni.IsOutputPrimary) bindings.AddRange(imni.Table.Primarys.Select(a => Expression.Bind(imni.Table.Properties[a.CsName], Expression.MakeMemberAccess(imni.CurrentExpression, imni.Table.Properties[a.CsName]))));
if (imni.Childs.Any()) bindings.AddRange(imni.Childs.Select(a => Expression.Bind(imni.Table.Properties[a.Key], GetIncludeManyNewInitExpression(a.Value))));
var pgarrayToManys = imni.Table.GetAllTableRef().Select(tr =>
{
if (tr.Value.RefType != TableRefType.PgArrayToMany) return null;
var reftb = _orm.CodeFirst.GetTableByEntity(tr.Value.RefEntityType);
if (tr.Value.RefColumns[0] == reftb.Primarys[0])
{
bindings.Add(Expression.Bind(imni.Table.Properties[tr.Value.Columns[0].CsName], Expression.MakeMemberAccess(imni.CurrentExpression, imni.Table.Properties[tr.Value.Columns[0].CsName])));
return tr.Key;
}
return null;
}).ToList();
return Expression.MemberInit(imni.Table.Type.InternalNewExpression(), bindings);
}

View File

@ -48,6 +48,7 @@ namespace FreeSql.Internal.Model
}
return tryref;
}
public IEnumerable<KeyValuePair<string, TableRef>> GetAllTableRef() => _refs;
//public void CopyTo(TableInfo target)
//{
@ -79,7 +80,7 @@ namespace FreeSql.Internal.Model
// target.VersionColumn = getOrCloneColumn(this.VersionColumn);
// foreach (var rf in this._refs) target._refs.TryAdd(rf.Key, new TableRef
// {
// });