EF核心代码首次迁移需要复杂类型的主键

时间:2019-10-02 18:19:06

标签: c# entity-framework-core

我有一个包含子类的数据类。它们像这样在DbContext中使用:

public class Foo
{
    [Key]
    public int Key { get; set; }

    public SubFoo SubFoo { get; set; }
}

[ComplexType]
public class SubFoo
{
    public double Value1 { get; set; }
    public double Value2 { get; set; }
}

public class ApplicationDbContext : DbContext
{
    public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
        : base(options) {
    }

    public DbSet<Foo> Foos { get; set; }

}

尝试创建代码优先迁移时,出现错误

  

实体类型“ SubFoo”要求定义主键

由于我的班级SubFoo用属性ComplexType装饰,并且MSDN documentation准确地指出复杂类型没有键,我有点困惑。

mentioned here一样,我尝试用ComplexType属性替换Owned注释,但不能解决问题。

我误会了如何利用复杂类型?

1 个答案:

答案 0 :(得分:0)

最重要的是,经过长时间的研究,执行代码优先迁移时,EF Core中尚不支持ComplexType。