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

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

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

插入工作很好,并在保存新成员时将所有参数传递给存储过程.

但是当我尝试更新成员(通过id从db加载实体,更改它的属性,再次保存 – 将发出更新语句的内容)时会发生什么?我得到一个例外,因为它正在查找名为Member_Update的存储过程.

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

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

最佳答案 可悲的是,它是全有或全无.

Entity Framework – Documentation

You cannot use a mixture of stored procedures and direct table access for a given entity (or entity hierarchy). The insert, update and delete operations must all use direct table access or stored procedures.

点赞