繁体   English   中英

是否可以使用实体框架从 C# 中的几个表中获得加入 SQL 查询的结果?

[英]Is it possible to get result from joined SQL query from several tables in C# with Entity Framework?

我正在使用.Net Core 与 C# 和实体框架。 我需要获取用于报告的数据,它需要连接多个表。

我的问题是,调用 SQL 查询并将结果传递给客户端应用程序的最佳方法是什么?

如果使用的表数量少于 3 或 4,我们可以使用 EF 连接从多个表中获取数据。

样品 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 调用 SPROC 并将数据绑定到任何自定义 DTO class。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM