gpt4 book ai didi

entity-framework - 没有 DbSet 的 Entity Framework 核心存储过程

转载 作者:行者123 更新时间:2023-12-03 07:14:12 25 4
gpt4 key购买 nike

我正在从 EF Core 1.1 调用存储过程,遵循 https://learn.microsoft.com/en-us/ef/core/querying/raw-sql 上的建议

但是我专门创建了一个类来匹配从存储过程返回的数据的形状

List<MyStoredProcResultType> results = context.MyStoredProcResultType
.FromSql("EXECUTE dbo.MyStoredProc {0}", someParam)
.ToList();

但这意味着我必须在 Context 中为 MyStoredProcResultType 创建一个 DbSet,现在编写此代码是合法的

context.MyStoredProcResultType.Where(..)

但这当然行不通。

有没有办法根据 Context 而不是 DbSet 调用存储过程,并将结果放入我创建的类型中?

最佳答案

自 EF Core 2.1 起,您可以使用 Query Types

您必须通过这种方式将结果类注册为查询类型:

modelBuilder.Query<MyStoredProcResultType>();

然后,只需使用:

var results = Context.Query<MyStoredProcResultType>()
.FromSql("EXECUTE dbo.MyStoredProc {0}", someParam)
.ToList()

感谢@Ivan Stoev 的回答:https://stackoverflow.com/a/52003734/8358565

关于entity-framework - 没有 DbSet 的 Entity Framework 核心存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45698359/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com