【发布时间】:2021-03-31 20:20:49
【问题描述】:
我有发票类和共享单元类
public partial class InvoiceAll
{
...
public int? status_invoice { get; set; }
public virtual List<HistoryShareUnit> HistoryShareUnit { get; set; }
}
public partial class HistoryShareUnit
{
...
public int history_approval { get; set; }
[ForeignKey("Invoice")]
public virtual InvoiceAll InvoiceAll { get; set; }
}
我在存储库中使用包含:
public async Task<IList<InvoiceAll>> FindLimit(int limit, string cari)
{
IQueryable<InvoiceAll> invoice = from s in _db.Invoices select s;
//untuk pencarian
if (!String.IsNullOrEmpty(cari))
{
invoice = invoice.Where(s => s.Nama_Pembeli.Contains(cari))
.Include(c => c.HistoryShareUnit)
.Where(c => c.HistoryShareUnit.Any(i => i.Invoice == c.Invoice));
}
//untuk limit
if (limit > 0)
{
invoice = invoice.Take(limit);
}
return await invoice.AsNoTracking().ToListAsync();
}
但结果总是以 Share Unit 类中的 1 行结束
[
{
"invoice": "JKTNPP20120003",
"historyShareUnit": [
{
"invoice": "JKTNPP20120003",
"invoiceAll": {
"invoice": "JKTNPP20120003",
"historyShareUnit": []
}
}
]
}
]
表之间的连接是正确的。因为共享单元类发票与发票类相同。
但是为什么他们只返回 1 个结果,而在 db 中发票有 3 个共享单元?
谁能赐教。我是 Entity 的新手。
【问题讨论】:
标签: asp.net entity-framework linq