遇到此问题: 出于完全相同的原因,可能不会自行设置集合导航属性
并在 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 应该为我做的一半)