【发布时间】:2016-08-30 17:13:09
【问题描述】:
我正在像这样使用 ef-core 继承:
public abstract class Person
{
public int Id { get; set; }
public string Name { get; set; }
public PersonType PersonType { get; set; }
public int PersonTypeId { get; set; }
public double Height { get; set; }
[Timestamp]
public byte[] Timestamp { get; set; }
}
public class Daughter : Person
{
public double Weigth { get; set; }
public DateTime SomeDate { get; set; }
}
public abstract class Son : Person
{
public DateTime BirthDate { get; set; }
public DateTime GraduationDate { get; set; }
}
public class SingleSon : Son
{
}
public class SonWithDaughter : Son
{
public int Daughter { get; set; }
public Daughter Daughter { get; set; }
}
在 DbContext 中:
public DbSet<PersonType> PersonTypes { get; set; }
public DbSet<Daughter> Daughters { get; set; }
public DbSet<SingleSon> SingleSons { get; set; }
public DbSet<SonWithDaughter> SonWithDaughters { get; set; }
当我更新 sql server 数据库(dotnet ef 数据库更新)时,它会抛出一个
System.InvalidOperationException,序列包含多个 匹配元素
关于如何解决这个问题的任何想法?
更新
【问题讨论】:
-
除模型外,我们还需要查看产生此错误的代码。
-
@Amy 从控制台添加迁移时产生的错误(dotnet ef...)用输出更新了问题
-
它现在被称为EntityFrameworkCore 并且承载版本1.0。 EF7 这个名字不再使用,也不应该再使用了,因为人们将它与遗留框架的新版本混淆了,但它是一个全新的重写并且与旧的 EF 不兼容
标签: entity-framework inheritance asp.net-core entity-framework-core