1

如果我有:

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来支持合并实体以进行更新。问题是它期望一个描述实体关系的表达式树被更新,例如。

context.UpdateGraph(company, map => map
    .OwnedCollection(p => p.Contacts, with => with
        .AssociatedCollection(p => p.AdvertisementOptions))
    .OwnedCollection(p => p.Addresses)
);

我的需要是一个通用的解决方案,所以我需要使用反射检查我的实体类型的各种一对一、一对多和多对多关系,并将它们转换为表达式树。

对我的具体问题或一般帮助的任何帮助将不胜感激。

4

1 回答 1

2

GraphDiff的develop分支为基于属性的映射提供支持。Owned您可以将自定义属性 (或)添加到模型类中的导航属性,而不是提供映射您的图形的表达式树Associated,GraphDiff 会为您创建映射。查看GraphDiffs 测试模型,了解其中的一些示例。

于 2014-10-26T11:53:38.680 回答