DbSet包含不按预期工作

时间:2014-09-05 10:39:09

标签: .net entity-framework ef-code-first

我有两个实体,如下所示。

public class SalesInvoice
{
    public int Id { get; set; }

    public DateTime Date { get; set; }

    public int CustomerId { get; set; }
    public virtual Customer Customer { get; set; }

    public virtual List<SalesInvoiceItem> SalesInvoiceItems { get; set; }

    public decimal TotalAmount { get; set; }

    public SalesInvoice()
    {
        SalesInvoiceItems = new List<SalesInvoiceItem>();
    }
}

public class SalesInvoiceItem
{
    public int Id { get; set; }

    public int ItemId { get; set; }
    public virtual Item Item { get; set; }

    public int Quantity { get; set; }

    public decimal TotalPrice { get; set; }

    public int SalesInvoiceId { get; set; }
    public virtual SalesInvoice SalesInvoice { get; set; }
}

令人惊讶的是以下一行

SalesInvoice salesInvoice = Db.SalesInvoices.AsNoTracking().Include("SalesInvoiceItems").FirstOrDefault();

不仅包括SalesInvoiceItems,还包括其父SalesInvoice,这导致循环问题。

我不明白如何解决这个问题。我需要包括孩子,但不能再包括下一个级别。

请为此问题提出解决方案。

由于

0 个答案:

没有答案