重构实体框架代码使用视图而不是表?

时间:2012-03-29 10:26:29

标签: entity-framework-4.1 entity-framework-4.3

对于EF 4.3.1中的视图,我们可能正在考虑切换表格。

我们首先通过edmx文件使用db,因此它生成我们的实体和dbcontext。

有没有人有任何关于将我们的实体从表格重新映射到视图的提示?

这容易发生灾难吗?我们在过去通过设计器更新edmx文件时遇到了麻烦,因为底层更改没有反映在代码中的某个位置,我们最终缺少列。

或者视图的行为与EF世界中的表非常相似吗?

1 个答案:

答案 0 :(得分:4)

Designer以完全不同的方式处理视图 - 首先,EF通过设计器使用的所有视图都是只读的,除非您将存储过程或自定义SQL命令映射到要修改的每个实体的插入,更新和删除操作。

通常,如果你有可更新的视图,你可以简单地修改EDMX的SSDL部分,并欺骗它假装视图实际上是一个表,但这有两个结果:

  • 您必须直接将EDMX修改为XML
  • 您不能再使用从数据库更新,因为它总是删除整个SSDL部件并创建一个没有您更改的新部件=您必须手动维护您的EDMX或为VS购买一些允许的扩展您只更新选定的表格。