是否可以将存储过程映射到 EF Core 中的实体?

问题描述

EF Core 中的类似内容

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    modelBuilder.Entity<Student>()
                    .MapToStoredProcedures();
}

EF 6 具有自动创建存储过程的功能。我希望有类似于 EF Core 的东西或解决方法来实现代码优先的方法。

解决方法

我认为它可以帮助您。 您可以使用 T-SQL 命令创建您自己的存储过程。如果你想尝试这种方式,你需要启用迁移并创建一个。 有了它之后,你需要创建一个继承你的 DbMigration 的部分类

public partial class SPAdder : DbMigration
{
    public override void Up()
    {
        CreateStoredProcedure(
            "dbo.ExampleSP",CreateStoredProcedure(
 "dbo.ExampleSP",p => new
 {
     Name = p.String(),LastName = p.String(),Hometowm = p.String(),StudentID = p.Int(),},body:
     @"
      if(exists(Select * from Student where StudentID = @StudentID))
          begin
              Update Student Set Name = @Name,LastName = @LastName,Hometown = @Hometown where StudentID =     @StudentID
          end
      else
          begin
              Insert Students(Name,LastName,Hometown) Values(@Name,@LastName,@Hometown)"
          end    
        );
         
    }
     
    public override void Down()
    {
        DropStoredProcedure("dbo.ExampleSP");
    }
}

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...