7

情况:有时候数据库模式是不是你会考虑的系统的信息的理想表现,你可能无法改变它。我们一直在使用实体框架来创建一个更好的概念模型来在这种情况下进行编码。这意味着从数据库更新模型,然后通过设计器或直接使用文本编辑器通过.edmx文件自行更改模型。灿实体框架4.1的设计师“从数据库更新模式”唯一入选的实体?

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

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

谢谢!

回答

4

没有就没有办法让内置的设计师选择更新。此外,设计师不会抛弃所有的更改。它通常不碰概念模型(除了一些少数情况下,它不断地重命名一些关联)和映射,但它始终删除存储模型,并用新的定义覆盖它。我没有任何问题修改我的概念模型,并从数据库映射和运行更新。

设计器与Visual Studio中的其他设计器一样 - 触摸生成的代码(存储模型)不受支持的功能。一旦你这样做,你不能使用更新数据库从再

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

1

如果通过更新选定的实体,您的意思只是一个或多个表,你可以从模型中删除的表,然后通过单独选择它们来进行添加早在单独的变化表拉 - 我这样做,经常为标的表格被改变(特别是在开发过程中)。

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