具有替代触发器的实体框架

Jas*_*ter 7 c# triggers entity-framework

我使用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() 
Run Code Online (Sandbox Code Playgroud)

我将视图映射到EF edmx.当我尝试添加实体时,我在调用时遇到以下异常SaveChanges():

无法更新EntitySet'TargetView',因为它具有DefiningQuery,并且元素中不存在支持当前操作的元素.

视图在映射中标记了标识列.

有什么建议?

dar*_*yal 3

如果使用 xml 编辑器打开 EDMX 文件,在定义 TargetView 的部分中,您将看到一些类似于以下内容的 xml;

<EntitySet Name=".."  
           EntityType=".." 
           store:Type="Views" 
           store:Schema=".." 
           store:Name="..">
<DefiningQuery>SELECT ....</DefiningQuery>
Run Code Online (Sandbox Code Playgroud)

您需要更改此 xml 部分才能进行 CRUD 操作;

<EntitySet Name=".."  
           EntityType=".."  
           store:Type="Tables" 
           Schema=".." />
Run Code Online (Sandbox Code Playgroud)