pud*_*n13 29 c# entity-framework-5 entity-framework-6
根据http://technet.microsoft.com/en-us/library/ms187956.aspx,我有几个可更新的视图.
我的所有观点都遵循上述文章中的规范.我已在SQL Management Studio中验证了可以更新,插入和删除视图.
我所做的研究使我有了两个选项来使我的Entity Framework 5/6模型中的视图可更新:
从每个视图中删除标记,但是,从数据库更新上下文时,MyContext.edmx中完成的任何工作都会被覆盖.这意味着这个解决方案对我的项目来说不太可行.
为每个视图添加插入,更新和删除存储过程,并将它们映射到设计器中.我不特别喜欢创建这么多存储过程的想法.
是否有任何简单的方法告诉EF5或EF6可以添加/更新/删除视图在运行后续"从数据库更新模型"命令时不会被删除,而无需为每个输入方法编写存储过程(插入,更新) ,删除)在每个视图?
我认为最简单的方法是更改StorageModel中EntitySet的定义,告诉它将其视为表,而不是数据库视图.
查看XML定义,它所说的位置
<EntitySet Name="Products" store:Type="Views" ..
Run Code Online (Sandbox Code Playgroud)
你把它改成了
<EntitySet Name="Products" store:Type="Tables" ..
Run Code Online (Sandbox Code Playgroud)
(注意"产品"只是一个例子)这应该在你的.edmx文件中.
参见第44页,Lerman,"编程实体框架",第2版.
希望这可以帮助.
| 归档时间: |
|
| 查看次数: |
10061 次 |
| 最近记录: |