在linq SQL中,如何连接dbo.Sales Invoice Line
中的两列和dbo.Value Entry
中的两列!任何人都可以帮助我:)预先感谢:)
这是SQL版本:
SELECT *
FROM dbo.[Item Ledger Entry]
INNER JOIN
dbo.[Value Entry] ON dbo.[Item Ledger Entry].[Entry No_] = dbo.[Value Entry].[Item Ledger Entry No_]
//Start here
INNER JOIN
dbo.[Sales Invoice Line] ON dbo.[Value Entry].[Document No_] = dbo.[Sales Invoice Line].[Document No_]
AND
dbo.[Value Entry].[Document Line No_] = dbo.[Sales Invoice Line].[Line No_]
这是我最终使用的linq版本,但是我不确定我是否以正确的方式做到了!:
from cbr in db.Contact_Business_Relation
join c in db.Contact on cbr.Contact_No_ equals c.Company_No_
join sa in db.Sales_Invoice_Header on cbr.No_ equals sa.Sell_to_Customer_No_
join sih in db.Sales_Invoice_Line on sa.No_ equals sih.Document_No_
//Start here
join ve in db.Value_Entry on sih.Document_No_ equals ve.Document_No_
join vetwo in db.Value_Entry on sih.Line_No_ equals vetwo.Document_Line_No_
join item in db.Item_Ledger_Entry on ve.Item_Ledger_Entry_No_ equals item.Entry_No_
答案 0 :(得分:0)
您可以通过在连接条件的每一侧匹配一个对象来执行此多条件连接。可以是类型化的对象,但只要属性名称匹配,则匿名对象也可以。查询的相关部分应如下所示:
//Start here
join ve in db.Value_Entry on new {
DocNo = sih.Document_No_,
LineNo = sih.Line_No_ } equals new {
DocNo = ve.Document_No_,
LineNo = ve.Document_Line_No_ }