2017-04-02 65 views
0

我是C#的初學者,現在正在編寫「搜索」功能的代碼。我已經把表格連接到N,就像下面的例子。而且,我想找出與表A匹配的數據,例如,表B,「KeyB002」。 (答案是KeyA001 & KeyA003)。

我一直在使用IQueryable,這個語法可以嗎?或者,這不起作用?我想知道的SingleOrDefault或FirstOrDefault將拿起僅附有TABLEA的第一關鍵,並通過(搜索)從所有連接的鍵不走,並找出在表A中的數據....IQueryable爲1到N表來選擇所有數據(c#)

謝謝非常。

(當前語法)僅供參考 - searchtableB_ID從屏幕...

var IqueryableData = from m in db.tableA.Include(p => p.tableB) select m; 
IqueryableData = IqueryableData.Where(s => s.tableB.SingleOrDefault().tableB_Key == searchtableB_ID); 

表一表& B:
KeyA001 - KeyB001
KeyA001 - KeyB002
KeyA001 - KeyB005
KeyA001 - KeyB007

KeyA002 - KeyB003
KeyA002 - KeyB005
KeyA002 - KeyB008

KeyA003 - KeyB001
KeyA003 - KeyB002
KeyA003 - KeyB006
KeyA003 - KeyB009

+0

WHERE查詢中的FirstOrDefault/SingleOrDefault表達式不會阻止返回多個記錄。 – Benthon

回答

0

你只可以:

var queryableData = db.tableB.Include(p => p.tableA).Where(q=> q.tableB_key == searchtableB_ID).First(m => m.tableA); 

通知顛倒包括(p => p.tableB)而不是(p => p.tableA)

相關問題