如何使用 Fromsql() 处理 Dotnet 核心中具有多个表的数据集
Posted
技术标签:
【中文标题】如何使用 Fromsql() 处理 Dotnet 核心中具有多个表的数据集【英文标题】:How to handle data set having multiple tables in Dotnet core using Fromsql() 【发布时间】:2017-11-08 23:19:32 【问题描述】:我正在使用 dot net core 创建 WebApi
我创建了从 2 个表中返回数据的过程:-
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();
我没有在这两个单独的对象中得到这两个表的结果。
它适用于单个表,但不适用于多个。
请指出我哪里出错了?
或者在dot net core中是否可行?
【问题讨论】:
在这种情况下你需要使用 ADO.NET 并处理多个结果集 @H.Herzl CORE 中 ADO.net 的功能有限。 【参考方案1】:以下实现将提供所需的结果:
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]");
【讨论】:
以上是关于如何使用 Fromsql() 处理 Dotnet 核心中具有多个表的数据集的主要内容,如果未能解决你的问题,请参考以下文章
Entity Framework 的 FromSql 方法执行使用内部连接选择语句的 SQL Server 表值函数