1

遇到此问题: 出于完全相同的原因,可能不会自行设置集合导航属性

并在 uservoice 上发布此建议 https://breezejs.uservoice.com/forums/173093-breeze-feature-suggestions/suggestions/3796779-repository-sample-that-serves-view-models-

在看到了新的紧凑元数据功能并查看了 edmunds 示例之后,我试图将它们放在一起并提出一个解决方案,该解决方案允许我提供 DTO/视图模型与来自 ef-codefirst Web api 后端的完整域对象我想出了两个场景。

1)使用web api返回DTO/在JS中创建元数据,并根据需要使用where参数进行过滤)因此据我所知,实体可以通过微风进行跟踪。这样做的问题是我将不得不覆盖保存更改并将 dtos/viewmodels 转换回 EF 域对象并保存它们。我不确定这是否像我看到的那样简单/复杂。基本上,我为此提出的算法是从更改集中删除根对象和相关子对象作为 DTO,并将它们映射回域对象,然后可以将其添加到上下文中并保存(似乎需要做很多工作,我不太确定必须执行的顺序始终是可知的)

2) 遵循 Pluralsight Enterprise EF 课程的 Julie Lermans 的指导,并首先使用代码在 EF 中直接创建部分,然后让微风按设计工作。(在课程中,朱莉创建了客户的精简模型,其中放置了属性,告诉 EF 将其映射到客户表)

我很想听听任何人对此的想法。我个人倾向于#2,但如果有一个工具可以从我的 C# 类生成元数据,或者如果 SaveChanges 的实现可以被证明是可管理的并且不会变成重写,我可能会被说服选择 #1 EF 应该为我做的一半)

4

1 回答 1

0

I was looking into the same issue myself and I ended up going with option 2. For my situation, I felt that I had more control going with option 2 and that I was better able to map my data the way I wanted without feeling that I had more layers than my personal project needed. Julie Lermans "Shrink EF Models with DDD Bounded Contexts" (http://msdn.microsoft.com/en-us/magazine/jj883952.aspx) was a very helpful article for me as well.

于 2013-04-29T15:33:17.377 回答