林克在我的不止一个领域离开了?我的SQL正在工作,但可以';t将其转换为linq查询
我想知道是否有人能帮忙 我有一个简单的SQL查询,就是这样林克在我的不止一个领域离开了?我的SQL正在工作,但可以';t将其转换为linq查询,linq,entity-framework,left-join,inner-join,Linq,Entity Framework,Left Join,Inner Join,我想知道是否有人能帮忙 我有一个简单的SQL查询,就是这样 SELECT * FROM ITEM INNER JOIN CODES ON ITEM.ITEMID = CODES.ITEMID AND ITEM.CATID = CODES.CATID 这非常有效,因此我在LINQ中创建了以下查询 from i in Item join c in codes on new { i.itemid, i.catid } equals new { c.itemid, c.c
SELECT * FROM ITEM INNER JOIN CODES ON ITEM.ITEMID = CODES.ITEMID AND
ITEM.CATID = CODES.CATID
这非常有效,因此我在LINQ中创建了以下查询
from i in Item join c in codes
on new { i.itemid, i.catid } equals new { c.itemid, c.catid }
很好,但我意识到我实际上需要一个左连接来代替内部连接。所以sql现在工作得很好!,is:-(注意左连接)
所以现在一切似乎都正常了,我使用SQL获取了所需的数据,我不知道如何在LINQ中进行左连接,尤其是如何在多个字段上进行左连接——在我的例子中是itemid和catid
我不知道是否有人能帮我一把,我被卡住了:-)我想这就是你需要向下走的方向:
from i in Item
join c in codes on new { i.itemid, i.catid } equals new { c.itemid, c.catid }
into grouped
from g in grouped.DefaultIfEmpty()
select new
{
ItemId = c.itemid,
CatItemId = g != null ? g.itemid : "Empty"
};
你应该看看:
关键是-->
加入联合管理部
来自JoinedDept.DefaultIfEmpty()中的部门
from i in Item
join c in codes on new { i.itemid, i.catid } equals new { c.itemid, c.catid }
into grouped
from g in grouped.DefaultIfEmpty()
select new
{
ItemId = c.itemid,
CatItemId = g != null ? g.itemid : "Empty"
};