是否可以通过实体框架从c#中的多个表中的联合sql查询获得结果?

vjrehmav  于 2021-07-27  发布在  Java
关注(0)|答案(1)|浏览(310)

我使用的是.net内核和c#以及实体框架。我需要获取用于报告的数据,它需要多个表的连接。
我的问题是,调用sql查询并将结果传递给客户机应用程序的最佳方法是什么?

8yparm6h

8yparm6h1#

如果使用的表数少于3或4,我们可以使用ef join从多个表中获取数据。
linq联接示例

var q=(from pd in dataContext.tblProducts 
 join od in dataContext.tblOrders on pd.ProductID equals od.ProductID 
 join ct in dataContext.tblCustomers 
 on new {a=od.CustomerID,b=od.ContactNo} equals new {a=ct.CustID,b=ct.ContactNo} 
 orderby od.OrderID 
 select new { 
 od.OrderID,
 pd.ProductID,
 pd.Name,
 pd.UnitPrice,
 od.Quantity,
 od.Price,
 Customer=ct.Name //define anonymous type Customer
 }).ToList();

如果使用的表的数量超过这个数量,我建议您实现一个存储过程并使用它来获取数据。您仍然可以使用ef调用存储过程并将数据绑定到任何自定义dto类。

相关问题