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

问题描述:

我们可能正在考虑切换我们的表格,以便在EF 4.3.1中查看。重构实体框架代码使用视图而不是表?

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

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

这是否容易发生灾难?我们在过去通过设计人员更新edmx文件时遇到了问题,其中底层更改未在代码的深处反映出来,我们最终丢失了列。

或者意见的行为与EF世界中的表格非常相似?

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

一般来说,如果你有更新视图,你可以简单地修改EDMX的SSDL部分,骗取其假装的观点实际上是一个表,但是这会带来两个后果:

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

伟大的答案一如既往感谢@拉迪斯拉夫。关于使用视图的潜在问题有趣的东西,我想我可能会遇到一个扩展,但如果它适用于4.1+和质量保证在图库中被打破,可能会遇到延伸。但希望它可以帮助:http://visualstudiogallery.msdn.microsoft.com/d9b76b5d-d45c-4e79-8d28-31444be582de再次感谢。 – 2012-03-29 11:32:21