【问题标题】:Entity Framework .Net core not adding stored procedure classesEntity Framework .Net 核心不添加存储过程类
【发布时间】:2020-04-01 15:59:56
【问题描述】:

我正在使用此命令在 .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 

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

脚手架语法有什么遗漏吗?

【问题讨论】:

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


    【解决方案1】:

    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();
      

    完成。

    【讨论】:

    • 感谢您的回复。当我脚手架时,它生成了表和视图模型。仅存储过程不包括在内。似乎他们已经扩展了对视图的支持,但仍然缺少 sps。
    • @urvishmandaliya;如前所述,您可以将 sp 添加到您的模型中。如果有帮助,请将已回答标记为已接受。
    • 感谢您的帮助。有效。我现在可以打电话给SP了。但是我面临的问题是我传递参数但每次生成 0 个结果集的参数。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多