在子属性中包含具有泛型类型的属性

时间:2021-04-13 14:32:42

标签: c# entity-framework

我需要做一个包含。 我有以下课程

public class TestRoot
{
    public int TestRootId { get; set; }
    public TestBase TestBase { get; set; }
}

public abstract class TestBase
{
    public int TestId { get; set; }
    public string Name { get; set; }
    public User User { get; set; }
}

public class TestA : TestBase
{
    public Item Item { get; set; }
}

public class TestB : TestBase
{
    public Address Address { get; set; }
}

我怎样才能做到这一点? 我尝试了几种方法,但都不起作用。

context.TestRoot.Include(i => i.TestBase)
                .Include(i => i.TestBase.User)
                .Include(i => i.TestBase.Item)
                .Include(i => i.TestBase.Address)
                .FirstOrDefaultAsync(f => f.TestRootId == 1)

context.TestRoot.Include(i => i.TestBase)
                .Include(i => i.TestBase.User)
                .Include(i => (i.TestBase as TestA).Item) // Error
                .Include(i => (i.TestBase as TestA).Address) // Error
                .FirstOrDefaultAsync(f => f.TestRootId == 1)

context.TestRoot.Include(i => i.TestBase)
                .Include(i => i.TestBase.User)
                .Include("TestBase.Item") // Error
                .Include("TestBase.Address") // Error
                .FirstOrDefaultAsync(f => f.TestRootId == 1)

错误: 指定的包含路径无效。 EntityType 'TestBase' 未声明名为 'Item' 的导航属性

0 个答案:

没有答案