0

有没有从 linq2sql 返回一对多关系的好方法,可能需要一些解释!:-)

基本上我有一个包含发票的表格和另一个包含发票详细信息的表格。

我有使用 linq2sql 设计器自动创建的 linq2sql 类...

因此,要返回发票 1232 有 15 个不同项目/详细信息的查询...我现在看到的方式是我必须对发票进行查询,然后对发票查询详细信息进行查询...

我敢肯定必须有一个更简单的方法?而不是做 2 个查询...即 JOIN?

我还想看看我是否可以返回 Iqueryable 中的值但使用链接表?

基本上我有我的方法是 Iqueryable<> GetInvoice();

当然 Iqueryable 是通用的,可以包含发票或发票详细信息 - 不能同时包含两者,或者我可能遗漏了什么?

4

2 回答 2

0

如果您的数据库设计已经包含发票表中的主键和发票详细信息表中的外键(发票 ID)之间的连接(“约束”),那么您应该能够从发票对象访问发票详细信息像这样:

myInvoice.Details

当您将表拖到设计器中时,Linq to SQL 应该已经为您创建了这种关系。换句话说,您可以从您的 Invoice 对象中获取信息,并直接访问详细信息。

如果确实存在这种关系,您应该在 Linq to SQL 设计器中将其视为发票表和发票详细信息表之间绘制的一条线。

于 2009-08-10T15:13:07.333 回答
0

如果您在数据库中设置了关系,那么您使用设计器创建了对象,您应该能够自动从发票中获取发票详细信息。

像这样的东西......

IList<InvoiceDetail> invoiceDetails = GetInvoice().SingleOrDefault(x => x.invoiceKey == 1232).InvoiceDetails.ToList();
于 2009-08-10T15:19:04.233 回答