EF核心:将属性映射到子属性

时间:2020-03-31 20:32:23

标签: entity-framework ef-core-2.2 ef-core-3.0

我想在我的实体中实施某种组合。我有以下代码:

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字段,但是我找不到这样做的方法。

0 个答案:

没有答案