实体框架.Net核心未添加存储过程类

时间:2020-04-01 15:59:56

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

我正在使用以下命令在.NET Core应用程序中生成Entity Framework类:

Scaffold-DbContext "Server=server name;Database=DB name;user id=user name;password=password;Trusted_Connection=False;Encrypt=True;" 
         Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models/DB 

它运行良好,正在为数据库中的所有表和视图创建模型。但是奇怪的是,它没有为存储过程创建模型。

我在脚手架语法中缺少什么吗?

2 个答案:

答案 0 :(得分:0)

Entity Framework Core仅为表创建实体类;存储过程或视图仍然不受支持。

但是有一个Github问题跟踪,您可以找到更多信息:Stored procedure mapping support

如何在脚手架之后添加存储过程(如普通实体):

  1. 创建存储过程的输出模型:

    public class SampleModel
    {
        public int ID { get; set; }
        public string Name { get; set; }
    }
    
  2. 将新的DbSet添加到您的上下文中:

    public virtual DbSet<SampleModel> SampleModels { get; set; }
    
  3. 将模型用于输出:

    var sampleModels = _context.SampleModels.FromSql($"EXEC ReturnAllSampleModels").ToList();
    

完成。

答案 1 :(得分:0)

如果需要脚手架存储过程,请查看SPT​​oCore实用程序:

https://www.c-sharpcorner.com/article/learn-about-stored-procedure-scaffolding-utillity-for-netcore3/

它允许您自动生成所有存储过程方法,结果集和参数映射