在 EF Core 3.1 中替换 MapToStoredProcedures() 的最佳方法是啥?

Posted

技术标签:

【中文标题】在 EF Core 3.1 中替换 MapToStoredProcedures() 的最佳方法是啥?【英文标题】:What is the best method for Replacement of MapToStoredProcedures() in EF Core 3.1?在 EF Core 3.1 中替换 MapToStoredProcedures() 的最佳方法是什么? 【发布时间】:2021-04-12 03:03:07 【问题描述】:

我已经将EntityFramework 6的项目实现到EntityFramework Core 3.1中。 使用 Roslyn API,我必须迁移实体框架的属性、类型和方法。现在我已经使用 MapToStoredProcedures

Sample.cs

受保护的覆盖无效 OnModelCreating(DbModelBuilder modelBuilder)

    modelBuilder.Entity()
            .MapToStoredProcedures(p => p.Insert(sp => sp.HasName("sp_InsertStudent").Parameter(pm => pm.StudentName, "name").Result(rs => rs.StudentId, "Id"))
                    .Update(sp => sp.HasName("sp_UpdateStudent").Parameter(pm => pm.StudentName, "name"))
                    .Delete(sp => sp.HasName("sp_DeleteStudent").Parameter(pm => pm.StudentId, "Id"))
            );

基于链接https://github.com/dotnet/efcore/issues/245。 EF Core 不再支持,而且大多数堆栈溢出链接都是由 DbContext 方法建议的。我对此一无所知。

请就此提出替代解决方案以及如何在 Roslyn API 中执行此操作?

【问题讨论】:

这与罗斯林有什么关系? 这在 EFCore 中是不可能的。 【参考方案1】:

没有替代品。使用标准 EF Core 保存更改。

【讨论】:

那么如果我们将 EF 迁移到 EF Core 关于 StoredProcedure ,就必须更改整个结构,对吧? 嗨@ErikEJ,FromSql 方法怎么样? FromSQL 用于 SELECT,您可以使用 ExecuteSqlRaw 用于 CUD 谢谢@ErikEJ 嗨@ErikEJ,您对在EF Core 中替换Map() 有任何想法

以上是关于在 EF Core 3.1 中替换 MapToStoredProcedures() 的最佳方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章

3.1 ef core

EF Core 3.1 无法查询 Json 序列化对象

EF Core 3.1 在特定数据库上下文上添加迁移

如何在 EF Core 3.1 中使用脚手架流程更新我的实体 - 执行超时已过期

从 .NET Core 2.2 迁移到 3.1 后,EF Core 随机抓取 API 请求上的用户表

EF Core 3.1 (LINQ) - 如何在多列上左加入和分组