实体框架4.1设计者只能为所选实体“从数据库更新模型”吗?

时间:2011-06-10 06:55:26

标签: c# entity-framework entity-framework-4.1 edmx edmx-designer

情况:有时数据库架构不是您认为理想的系统信息表示,您可能无法更改它。我们一直在使用Entity Framework来创建一个更好的概念模型,以便在这种情况下进行编码。这意味着从数据库更新模型,然后通过设计器或直接使用文本编辑器直接通过.edmx文件更改模型。

问题:从数据库更新模型时,所有精心设置的更改都会被抛出窗口。这可以使添加新实体变得非常麻烦,因为您基本上不得不通过直接编辑.edmx文件来实现它。

问题:有没有办法让Entity Framework只从数据库中更新选定的实体?或者是否可以告诉它在添加新实体时单独留下模型的其余部分?

谢谢!

2 个答案:

答案 0 :(得分:5)

没有办法使用内置设计器进行选择性更新。此外,设计师不会丢弃所有更改。它通常不接触概念模型(除了一些罕见的场合,它不断重命名一些关联)和映射,但它总是删除存储模型并用新定义覆盖它。我对我的概念模型的修改以及从数据库中映射和运行更新没有任何问题。

Designer与Visual Studio中的任何其他工具一样 - 触摸生成的代码(存储模型)是不受支持的功能。完成后,您将无法再使用从数据库更新

commercial tool可能支持更好的模型更新 - 您可以尝试试用。

答案 1 :(得分:1)

如果通过更新选定的实体,您只需要一个或多个表,您可以从模型中删除这些表,然后单独添加它们以通过单独选择它们来拉入更改表 - 我经常将其作为基础表执行改变了(特别是在开发过程中)。

在将实体/表拉入模型后,您最终会丢失对重新添加的实体所做的任何手动更改(即我经常重命名我的导航属性,然后在每次重新导入表后我需要再次手动重命名。)