Can Entity Framework 4.1设计器“;从数据库更新模型”;仅适用于选定的实体

本文关键字:模型 更新 适用于 实体 数据库 Framework Entity Can | 更新日期: 2023-09-27 17:58:46

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

问题:当您从数据库中更新模型时,所有精心做出的更改都会被抛出窗口。这可能会使添加新实体成为一件真正的麻烦事,因为您基本上是被迫通过直接编辑.edmx文件来完成的。

问题:有没有办法让实体框架只更新数据库中的选定实体?或者,在添加新实体时,可以告诉它不要理会模型的其余部分吗?

谢谢!

Can Entity Framework 4.1设计器“;从数据库更新模型”;仅适用于选定的实体

不,没有办法使用内置设计器进行选择性更新。此外,设计师不会丢弃你所有的更改。它通常不涉及概念模型(除了在极少数情况下不断重命名某些关联)和映射,但它总是删除存储模型并用新的定义覆盖它。我在修改概念模型、映射和运行数据库更新方面没有遇到任何问题。

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

有一种商业工具可能支持更好的模型更新——你可以尝试试用。

如果更新所选实体,意味着只更新一个或多个表,则可以从模型中删除这些表,然后单独添加它们,通过单独选择它们来引入更改表-我经常在底层表更改时这样做(尤其是在开发过程中)。

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