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

本文关键字:一个 语句 映射 存储过程 框架 实体 | 更新日期: 2023-09-27 18:33:56

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

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

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

但是当我尝试更新成员(按 id 从 db 加载实体、更改其属性并再次保存 - 将发出 update 语句)时会发生什么是我得到异常,因为它正在寻找名为 Member_Update 的存储过程。

但是对于这个(和删除),我不想有存储过程。我只想为 insert 语句执行一个存储过程。

是否可以仅将 EF 映射到插入操作的存储过程?

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

可悲的是,要么全有,要么全无。

实体框架 - 文档:

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