Entity Framework 4.1设计器能否仅针对选定的实体从数据库更新模型?

7
情况:有时数据库模式并不是您认为的系统信息的理想表示,而且您可能无法更改它。在这种情况下,我们使用Entity Framework创建一个更好的概念模型来编写代码。这意味着从数据库更新模型,然后通过设计师或直接使用文本编辑器更改它自己。

问题:当您从数据库更新模型时,所有精心制作的更改都被抛弃。这可能会使添加新实体变得非常麻烦,因为您基本上被迫通过直接编辑.edmx文件来完成。

问题是:是否有一种方法可以让Entity Framework仅从数据库中更新所选实体?或者在添加新实体时是否可以告诉它保留模型的其余部分?

谢谢!

2个回答

5
没有内置设计器可以进行选择性更新。此外,设计器不会丢弃您的所有更改。它通常不会触及概念模型(除了某些罕见情况下连续重命名某些关联)和映射,但它总是删除存储模型并用新定义覆盖它。我对我的概念模型和映射进行了修改,并从数据库运行更新而没有任何问题。
设计器与 Visual Studio 中的任何其他设计器一样 - 不支持触及生成的代码(存储模型)的功能。一旦您这样做了,就不能再使用“从数据库更新”了。
商业工具可能支持更好的模型更新 - 您可以尝试试用版。

1
如果您所说的更新选定实体,仅指一个或多个表格,您可以从模型中删除这些表格,然后逐个将它们添加回来以选择性地拉取更改表格 - 在底层表格发生更改时,我经常这样做(特别是在开发过程中)。
在重新添加的实体/表格被拉入模型后,您最终会失去对这些实体/表格所做的任何手动更改(例如,我经常重命名我的导航属性,然后在每次重新导入表格后,我都需要手动重新命名它们)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接