如果我有:
m => m.OwnedCollection(p => p.Addresses)
和
m => m.OwnedCollection(p => p.Contacts)
我想将它们合并为:
m => m.OwnedCollection(p => p.Addresses).OwnedCollection(p => p.Contacts)
有没有办法做到这一点?
我也希望能够结合起来:
m => m.OwnedCollection(p => p.Contacts)
和
with => with.AssociatedCollection(p => p.AdvertisementOptions)
是:
m => m.OwnedCollection(p => p.Contacts, with => with.AssociatedCollection(p => p.AdvertisementOptions))
还有办法做这个吗?
我希望这些是相当简单的要求,但我发现很难掌握这些术语。
一些背景知识:
我正在使用https://github.com/refactorthis/GraphDiff来支持合并实体以进行更新。问题是它需要一个描述要更新的enitity关系的表达式树,例如
context.UpdateGraph(company, map => map
.OwnedCollection(p => p.Contacts, with => with
.AssociatedCollection(p => p.AdvertisementOptions))
.OwnedCollection(p => p.Addresses)
);
Mine需要是一个通用的解决方案,所以我需要使用反射检查我的实体类型的各种一对一,一对多和多对多关系,并将它们转换为表达式树。
对我的具体问题或一般帮助的任何帮助将不胜感激。
答案 0 :(得分:2)
GraphDiff的develop
分支为基于属性的映射提供支持。您可以将自定义属性(Owned
或Associated
)添加到模型类的导航属性中,而不是提供映射图形的表达式树,GraphDiff会为您创建映射。有关这方面的一些例子,请查看GraphDiffs test models。