实体框架6 - 仅将一个语句映射到存储过程

时间:2014-12-10 07:22:00

标签: c# entity-framework entity-framework-6

我正在映射一个实体以插入存储过程,如下所示:

modelBuilder  
  .Entity<Member>()  
  .MapToStoredProcedures(s =>  
       s.Insert(u => u.HasName("stp_insert_member")));

当我保存新成员时,插件很有效,并将所有参数传递给存储过程。

但是当我尝试更新成员(通过id从db加载实体,更改它的属性,再次保存 - 将发出更新语句的内容)时会发生什么事情,因为它是一个例外,因为它&#39;寻找名为Member_Update的存储过程。

但是对于那个(以及删除),我不想要存储过程。我只想为insert语句执行存储过程。

我可以将EF映射到存储过程以仅插入操作吗?

1 个答案:

答案 0 :(得分:2)

可悲的是它全有或全无。

Entity Framework - Documentation

  

您不能对给定实体(或实体层次结构)使用存储过程和直接表访问的混合。插入,更新和删除操作都必须使用直接表访问或存储过程。