如何使用Fromsql()處理在Dotnet核心中具有多個表的數據集

.net .net-core asp.net asp.net-core-webapi entity-framework-core

我正在使用dot net core創建WebApi

我創建了從2個表AS返回數據的過程: -

select * from table1
select * from table2

我有型號列表: -

public class ModelList
{
public model1 m1 { get; set; }
public model2 m2 { get; set; }
}

我正在執行程序並在模式列表中接收結果: -

List<ModelList> ML= new List<ModelList>();
ML= db.ModelList.FromSql("EXECUTE [dbo].[usp]").ToList();

我沒有在這兩個單獨的對像中得到這兩個表的結果。

它適用於單個表,但不適用於多個表。

請告訴我哪裡犯了錯誤?

或者它是否在點網核心中可行?

熱門答案

以下實現將提供所需的結果:

public ModelList ExecuteMultiple(string query){

             using( IDbConnection connection = new SqlConnection(YOUR_CONNECTION_STRING)){
                try{
                    connection.Open();
                    var multi = connection.QueryMultiple(query);
                    var modelList = new ModelList();
                    modelList.m1 = multi.Read<model1>();
                    modelList.m2 = multi.Read<model2>();
                    return modelList;
                }
                catch( Exception ex){
                    Console.WriteLine(ex.Message);
                }finally{
                    connection.Close();
                }
             }

             return null;
         }

用法:

var modelList = ExecuteMultiple("EXECUTE [dbo].[usp]");


Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow