2009-08-10 76 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();