【发布时间】:2019-10-02 18:19:06
【问题描述】:
我有一个包含子类的数据类。它们在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 属性,但没有解决问题。
我是否误解了如何使用复杂类型?
【问题讨论】:
-
我在询问之前阅读了它们,其中一个甚至与我的帖子相关联。而另一个则指出复杂类型在积压中......在 2015 年!所以,我真的不明白为什么这些线程有用