使用实体框架而不是触发器

我正在使用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

上一篇: Entity Framework with Instead Of triggers

下一篇: bit Java can't access 32