【问题标题】:AutoMapping stored procedure resultsAutoMapping 存储过程结果
【发布时间】:2017-11-04 23:16:12
【问题描述】:

我想知道是否有任何方法可以将存储过程的结果映射到一个类中。

这就是我所拥有的:

// DbContext Class:
public DbSet<StoredProcedureModelResult> SPMR { get; set; }

// Service Class:
var result = ctx.Set<StoredProcedureModelResult>().FromSql("getXXXX p1 = {0},1).ToList();

这很好用,但是,我正在使用数据库迁移,每次我添加一个这个东西都会创建 StoredProcedureModelResult 作为一个表...

我试图忽略它onModelCreating

modelBuilder.Ignore<SPModels.test>();

但这会引发异常:

无法为“StoredProcedureModelResult”创建 DbSet,因为该类型未包含在上下文模型中

我只是想利用映射的好处,而不是创建表,这是一个简单的模型(非实体类型)

顺便说一句

  • .NET Core 1.1
  • Web API
  • EF Core(代码优先)

谢谢

【问题讨论】:

  • 你可以使用 Dapper,它将 SP 的结果映射到一个对象

标签: entity-framework stored-procedures mapping .net-core


【解决方案1】:

您不需要将类型设为实体类型(通过在 DbContext 中注册 DbSet)。只需有一个返回 IEnumerable&lt;StoredProcResults&gt; 的方法(可以在您的 DbContext 中),然后在其中运行

dbContext.Database.SqlQuery<StoredProcResults>(...)

Database.SqlQuery&lt;T&gt;(...)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-19
    • 2021-03-22
    相关资源
    最近更新 更多