【问题标题】:Using linq2SQL to return a 1 to many relationship?使用 linq2SQL 返回一对多关系?
【发布时间】:2010-11-18 07:58:31
【问题描述】:

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

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

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

所以要返回发票 1232 有 15 个不同项目/详细信息的查询...我现在看到的方式是我必须先查询发票,然后再查询发票查询详细信息。 .

我确定一定有更简单的方法吗?而不是做 2 个查询...即 JOIN?

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

我的方法是 Iqueryable GetInvoice();

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

【问题讨论】:

    标签: linq-to-sql join iqueryable


    【解决方案1】:

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

    myInvoice.Details
    

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

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

    【讨论】:

      【解决方案2】:

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

      类似这样的......

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

      【讨论】:

        猜你喜欢
        • 2012-11-26
        • 2019-07-24
        • 1970-01-01
        • 2013-10-21
        • 2014-10-23
        • 1970-01-01
        • 2021-01-16
        • 1970-01-01
        • 2018-01-24
        相关资源
        最近更新 更多