2010-10-23 99 views
1

我有一個基於下面的T SQL查詢:實體框架 - 過濾查詢可空連接密鑰

select t1.field1 
     t2.field1, 
     t2.field2, 
     t3.field1, 
t3.field2 
from t1 left outer join t2 on t1.t2key = t2.id 
     left outer join t3 on t1.t3key = t3.id 

在LINQ到實體查詢的形式爲

var query = db.context.t1.include(「t2」).include(「t3」); 

表T1有在這個領域t2key和t3key是不可空的。可空字段阻止我通過任何t2或t3字段進行過濾。

到目前爲止,我看到的唯一出路是在執行過濾之前將結果作爲數據庫視圖返回。或者我應該採取另一種方法?

+0

是的 - 我會把它作爲一個視圖。 – RPM1984 2010-10-23 00:25:30

+0

感謝您的確認 - 我會嘗試查看方法 – baffled68 2010-10-23 18:32:34

回答

0

爲什麼這是值得我最終使用Linq的。如果其他人在同一條船上,這是可空問題的語法:

query = query.Where(x => x.t1field!= null?x.t1field.t3field.Contains(model.propvalue ):false).Select(x => x);