我想在我的实体中实施某种组合。我有以下代码:
class Expense
{
public int Amount { get; set; }
}
class Item
{
public int Id { get; set; }
public int Name { get; set; }
}
class ItemBasedExpense
{
public Item Item { get; set; }
public Expense Expense { get; set; }
}
class LineItem
{
private ItemBasedExpense itemBasedExpense;
public Item Item => itemBasedExpense.Item;
}
我设法将itemBasedExpense字段映射为拥有的类型,但是我不想直接公开它。我希望其中一部分可以通过Item属性访问。 EF Core可以加载我的LineItem实体,而填充的itemBasedExpense字段没有任何问题。但是,当我尝试在DbContext.Set<LineItem>().Where(line => line.Item.Id > 0).ToList()
之类的查询中使用Item属性时,itemBasedExpense为null。
我很确定可以在访问Item属性时以某种方式告诉EF它会使用/加载itemBasedExpense字段,但是我找不到这样做的方法。