2009-08-10 65 views
0

有沒有從linq2sql返回一對多關係的好方法,可能需要一些解釋! :-)使用linq2SQL返回1對多關係?

基本上我有了發票和另一個表是發票明細的表..

我有使用LINQ2SQL設計師自動創建我的LINQ2SQL類...

所以返回查詢發票1232有15個不同的項目/細節...我目前看到它的方式是,我必須對發票進行查詢,然後查詢發票查詢詳細信息...

I我確定有一個更簡單的方法嗎?而不是做2個查詢......即JOIN?

另外我想看看我是否可以返回一個Iqueryable中的值,但與鏈接表?

Basicall我有我的方法是Iqueryable <> GetInvoice();

當然,Iqueryable是一個通用的,可以包含發票或發票明細 - 不是兩個,或者我可能錯過了什麼?

回答

0

如果您的數據庫設計已在發票明細表中的主鍵與發票明細表中的外鍵(發票ID)之間包含連接('約束'),那麼您應該能夠訪問您的發票明細從您的發票對象是這樣的:

myInvoice.Details 

LINQ到SQL,當你拖着你的表到設計師應該已爲您建立這種關係。換句話說,您可以從發票對象中獲取信息,並直接訪問詳細信息。

如果這種關係確實存在,您應該在Linq to SQL設計器中將它看作發票表和發票明細表之間的一條線。

0

如果你在你的db中建立了你的關係,那麼你使用設計器創建了你的對象,你應該能夠從發票中自動獲得發票細節。

是這樣的....

IList<InvoiceDetail> invoiceDetails = GetInvoice().SingleOrDefault(x => x.invoiceKey == 1232).InvoiceDetails.ToList();