如何将此SQL查询转换为LINQ to Entities查询?

时间:2012-10-20 16:42:43

标签: c# sql-server entity-framework tsql linq-to-entities

我需要帮助将SQL查询转换为我的C#代码中的实体查询。 该查询将4个不同的表组合在一起,如下所示:

SELECT a.email,
       a.status,
       a.createdat,
       b.unitprice,
       c.name,
       d.name,
       e.name 
FROM Orders a, 
     Orderdetails b, 
     ServiceOptions c, 
     services d, 
     merchants e 
WHERE a.id=b.orderid AND c.id=b.serviceoptionid
      AND c.serviceid=d.id AND d.merchantid=e.id

2 个答案:

答案 0 :(得分:4)

var query = from a in context.Orders
            join b in context.OrderDetails on a.id equals b.orderid
            join c in context.ServiceOptions on b.serviceoptionid equals c.id
            join d in context.services on c.serviceid equals d.id
            join e in context.merchants on d.merchantid equals e.id
            select new { a.email, 
                         a.status, 
                         a.createdat,
                         b.unitprice, 
                         c.name, 
                         d.name, 
                         e.name };

答案 1 :(得分:0)

我认为你正朝着相反的方向发展。首先创建一个实体框架,然后使用EF中的LINQ创建SQL。它应该是EF-> LINQ-SQL。 EF的整个想法是用户不必创建一个sql。在项目中创建EF后,可以在LINQ to SQL中完成此查询。