使用实体框架而不是触发器
我正在使用EF与SQL Server数据库。 我为该视图创建了一个视图和一个“ Instead Of Insert
触发器,如下所示:
insert into Target (value, someFk)
select value, 4 from inserted
select id from Target where @@ROWCOUNT > 0 and id = scope_identity()
我将视图映射到EF edmx。 当我尝试添加实体时,在调用SaveChanges()
时出现以下异常:
无法更新EntitySet'TargetView',因为它具有DefiningQuery并且元素中不存在元素以支持当前操作。
该视图在映射中标记了标识列。
有什么建议么?
如果使用xml编辑器打开EDMX文件,在TargetView定义的部分中,您将会看到类似于以下内容的xml;
<EntitySet Name=".."
EntityType=".."
store:Type="Views"
store:Schema=".."
store:Name="..">
<DefiningQuery>SELECT ....</DefiningQuery>
您需要更改此xml部分才能进行CRUD操作;
<EntitySet Name=".."
EntityType=".."
store:Type="Tables"
Schema=".." />
链接地址: http://www.djcxy.com/p/11139.html