2011-10-18 55 views
0

我是Linq to SQL的新手,我試圖將這個SQL轉換成Linq。你能幫我解決嗎?Linq to SQL在一個連接上具有更多條件

SELECT * 
FROM [dbo].[tblTest] 
INNER JOIN [dbo].[tblStationTest] ON [tblTest].[id] = [tblStationTest].[Test_id] 
INNER JOIN [dbo].[tblTestType] ON [tblTest].[TestType_id] = [tblTestType].[id] 
LEFT OUTER JOIN [dbo].[tblTestOrder] ON [tblTest].[id] = [tblTestOrder].[Test_id] 
       AND ([tblTestOrder].[TestOrderList_id] = 1) 
WHERE ([Station_id] = 1) 

什麼引起我的問​​題是這樣的條件AND([TestOrderList_id] = 1)

這種情況不能在CLASE因爲這將取消左派的影響加入

感謝kurin

回答

0

你可以嘗試像

from test in db.tblTest 
    join stationTest in db.tblStationTest on test.id equals stationTest.Test_id 
    join testType in db.tblTestType on test.TestType_id equals testType.id 
    join testOrder in db.tblTestOrder on new{Key1 = test.id, Key2= 1} equals new{Key1 = testOrder.Test_id, Key2 = testOrder.TestOrderList_id} into tempOrders 
    from t in tempOrders.DefaultIfEmpty() 
    select new{test.Test_id, testType.something, t.somethingelse} 
+0

謝謝。但我必須指出,在linq中進行左連接並不是很愉快,但可能沒有更好的方法。 – kurin123