小编Geo*_*rge的帖子

存储过程 .NET Core 和 Entity Framework 的多个返回集

我想从返回 3 个不同表的 SQL Server 存储过程加载 3 个不同的模型,例如:

 select A.id, A.Name from tableA A

 select B.id, B.Age from tableB B

 select C.Test, C.Param from tableC C
Run Code Online (Sandbox Code Playgroud)

通常,我会使用 Entity Framework Core 处理单个结果存储过程,如下所示:

语境:

 public virtual DbQuery<StoredProcedureModel> spModel{ get; set; }

 protected override void OnModelCreating(ModelBuilder modelBuilder)
 {
        modelBuilder.Query<StoredProcedureModel>(entity =>
        {
            entity.Property(e => e.Id)
                    .HasColumnName("Id");
            entity.Property(e => e.Name)
                    .HasColumnName("Name");
        }
 }
Run Code Online (Sandbox Code Playgroud)

存储库:

return _context.StoredProcedureModel
        .FromSql<StoredProcedureModel>(
            "GET_ID_NAME @ID,@NAME",
            new SqlParameter("@ID", ID),
            new SqlParameter("@NAME", Name))
        .ToList();
Run Code Online (Sandbox Code Playgroud)

这只是一个虚拟示例,但我想知道是否有一种方法可以将所有 3 个表加载到 3 个不同的模型中(某些返回的表具有相同的列名称,如“id”)。

sql-server rest stored-procedures entity-framework-core .net-core

3
推荐指数
1
解决办法
3477
查看次数