具有多连接和多条件的Linq查询
我正在使用Telerik数据访问来执行或映射 我试图使用Linq执行连接查询,但不确定如何正确进行 原始sql查询由以下公式给出:具有多连接和多条件的Linq查询,linq,join,telerik,Linq,Join,Telerik,我正在使用Telerik数据访问来执行或映射 我试图使用Linq执行连接查询,但不确定如何正确进行 原始sql查询由以下公式给出: 'SELECT O.OPS_LEG_ID, O.ATD_DATE, O.DEP_AIRPORT_ACT, O.ARR_AIRPORT_ACT, O.ATA_DATE, '+ 'O.FL_LOG_ATD_DATE, O.FL_LOG_ATA_DATE, O.FL_LOG_DEP_AIRPORT, O.FL_LOG_
'SELECT O.OPS_LEG_ID, O.ATD_DATE, O.DEP_AIRPORT_ACT, O.ARR_AIRPORT_ACT, O.ATA_DATE, '+
'O.FL_LOG_ATD_DATE, O.FL_LOG_ATA_DATE, O.FL_LOG_DEP_AIRPORT, O.FL_LOG_ARR_AIRPORT, '+
'O.FL_NB, O.DESIGNATOR, O.FL_LOG_ID, O.FL_LOG_STATUS '+
'FROM CREW_ROT_ROLE CR, OPS_LEG O, CREW_ROLES R, CREW_PAIRING_CMP CP '+
'WHERE CR.ROLE_CDE = R.ROLE_CDE '+
'AND CR.CREW_ROTATION_ID = CP.CREW_ROTATION_ID '+
'AND CP.OPS_LEG_ID = O.OPS_LEG_ID '+
'AND CR.CREW_CDE = :CREW_CDE '+
'AND O.ATD_DATE >= :D_FROM '+
'AND O.ATD_DATE <= :D_TO '+
//'AND R.ROLE_TYPE = 0 '+
'ORDER BY O.ATD_DATE
尝试上一个查询时,会引发异常:
“标识符‘ROLE_CDE’不是的参数、变量或字段
“FlightLogEntities.OPS_LEG”。如果“ROLE_CDE”是一个属性,请添加
字段别名或存储属性,或将其声明为字段的
别名。”
我不知道怎么继续。使用Linq联接的正确查询是什么?谢谢 如果您使用的是类似ORM的实体框架,那么概念模型将是类的混合,这将提供以对象为中心的数据视图。 因此,您将在对象上使用Linq,在这种情况下,您不需要像在SQL中对数据库那样为连接编写查询。概念模型将包含使用导航属性将具有关系的对象,要访问导航属性,可以将其作为对象的属性访问 例如,如果数据库中有两个表,则为Customer&Orders。以下SQL语句将返回1号客户的所有订单:
SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
INNER JOIN Orders
ON Customers.CustomerID=Orders.CustomerID
Where Customers.CustomerID = 1
如果我们使用EF-generate从数据库生成概念模型,我们将获得Customer和Order的类,Customer类将具有ICollection属性。因此,如果您需要与上面的SQL查询相同的结果,您可以按照以下方式进行
var CustomerOne = context.Customers.Where(x => x.CustomerID == 1);
var ordersForCustomerOne = CustomerOne.Orders;
你可以试试类似的东西
var k = from r in dataContext.Order_Details
join t in dataContext.Orders on r.OrderID equals t.OrderID
select r.OrderID ;
我也有类似的问题。你找到解决办法了吗?
var k = from r in dataContext.Order_Details
join t in dataContext.Orders on r.OrderID equals t.OrderID
select r.OrderID ;