- 修复 PgArrayToMany DTO 异步查询报错的 bug(同步方法正常);

This commit is contained in:
2881099 2022-11-08 00:33:39 +08:00
parent f321354749
commit 330abdf897
4 changed files with 22 additions and 2 deletions

View File

@ -800,5 +800,14 @@
<param name="that"></param> <param name="that"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:Microsoft.Extensions.DependencyInjection.FreeSqlRepositoryDependencyInjection.AddFreeRepository(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action{FreeSql.FluentDataFilter},System.Reflection.Assembly[])">
<summary>
批量注入 Repository可以参考代码自行调整
</summary>
<param name="services"></param>
<param name="globalDataFilter"></param>
<param name="assemblies"></param>
<returns></returns>
</member>
</members> </members>
</doc> </doc>

View File

@ -1536,6 +1536,17 @@ namespace FreeSql.Internal.CommonProvider
var bindings = new List<MemberBinding>(); 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.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)))); 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); return Expression.MemberInit(imni.Table.Type.InternalNewExpression(), bindings);
} }

View File

@ -210,7 +210,7 @@ constantine,
[mafeng8](https://github.com/mafeng8), [mafeng8](https://github.com/mafeng8),
[VicBilibily](https://github.com/VicBilibily), [VicBilibily](https://github.com/VicBilibily),
[Soar](https://github.com/sgf), [Soar](https://github.com/sgf),
QLR etc. [quzhen91](https://github.com/quzhen91) etc.
## 💕 Donation ## 💕 Donation

View File

@ -211,7 +211,7 @@ constantine,
[mafeng8](https://github.com/mafeng8), [mafeng8](https://github.com/mafeng8),
[VicBilibily](https://github.com/VicBilibily), [VicBilibily](https://github.com/VicBilibily),
[Soar](https://github.com/sgf), [Soar](https://github.com/sgf),
QLR 等。 [quzhen91](https://github.com/quzhen91) 等。
## 💕 Donation (捐赠) ## 💕 Donation (捐赠)