【问题标题】:Entity Framework Core - binding SP return value to project Model without re-mappingEntity Framework Core - 将 SP 返回值绑定到项目模型而不重新映射
【发布时间】:2025-11-25 08:35:01
【问题描述】:

在以下场景中,存储过程的执行返回与“LocalModel”类型匹配的已知列

EF Core 中有没有办法查询实体并将其绑定回匿名类型。

List<LocalModel> ModelList= context.Table.FromSql(Stored_Proc +" @Param", _moduleName).ToList(); 

就像,在正常的 EF 中,这可以实现如下。

List<LocalModel> ModelList= context.Database.SqlQuery<LocalModel>("exec Stored_Proc").ToList<LocalModel>();

【问题讨论】:

  • 我看不出 EF Core 和“普通”EF 示例之间有任何区别 - 两者都返回 LocalModel 实例。那么问题/问题又是什么?
  • 第一个查询是显示我在 Core 中尝试的,在 EF Core 中不起作用

标签: c# .net entity-framework asp.net-core entity-framework-core


【解决方案1】:

如果您在要绑定到的类型的 DbSet 上使用 FromSql,那么它将创建该 POCO 类的实例。例如:

假设:

public DbSet<LocalModel> LocalModels { get; set; }

然后:

context.LocalModels.FromSql(...).ToList();

如果您是一般工作,或者只是您喜欢,您可以使用 Set&lt;T&gt;() 而不是实际的 DbSet 属性名称:

context.Set<LocalModel>().FromSql(...).ToList();

【讨论】: