我的数据库中有3个表:InvoiceDetailLineType,InvoicingCategory,CalculationRule。
InvoiceDetailLineType具有InvoicingCategory和CalculationRule的外键。
我想检索给定类别的所有InvoiceDetailLineType对象的列表,并包含相关的CalculationRule和InvoicingCategory对象。
这是我的方法:
public List<InvoiceDetailLineType> GetAllForCategory(InvoicingCategory category)
{
return (from InvoiceDetailLineType lineType in ContextHelper.Entities.InvoiceDetailLineType.Include("CalculationRule").Include("InvoicingCategory")
where lineType.InvoicingCategory.IdInvoicingCategory == category.IdInvoicingCategory
select lineType).ToList();
}
我希望这能给我我需要的东西,但我得到的是一个其CalculationRule为null的对象。我确保外键都设置正确,并且记录存在于数据库中,所以看起来有点奇怪。
我错过了什么吗?
提前致谢。
答案 0 :(得分:3)
好的,我找到了解决方案:
public List<InvoiceDetailLineType> GetAllForCategory(InvoicingCategory category)
{
ObjectQuery<InvoiceDetailLineType> lineTypeQuery = ContextHelper.Entities.InvoiceDetailLineType.Include("CalculationRule").Include("InvoicingCategory");
return lineTypeQuery.Where(t => t.InvoicingCategory.IdInvoicingCategory == category.IdInvoicingCategory).ToList();
}
仍然不太确定为什么我的初始代码不起作用,如果有人为了完整起见可以说清楚,我会很感激。
答案 1 :(得分:0)