迁移导致"序列不包含元素"错误

Col*_*lin 10 entity-framework

我使用table-per-hierarchy继承创建了一个包含3个类的模型,并使用2个自引用层次结构表的外键创建了一个模型.

我有一个BaseProperty具有自引用键CloneID和导航属性的类Clone:

public class BaseProperty
{
   public int ID {get; set; }

   public int? CloneID {get; set; }

   public BaseProperty Clone {get; set; }

   //If I add this code, when I use Add-Migration - 
   //Sequence contains no elements error
   //public int? TriggeredCloneID {get; set;}
}
Run Code Online (Sandbox Code Playgroud)

我有一个Property继承BaseProperty并具有外键BlockID和Block导航属性的类.

public class Property : BaseProperty
{
   public int? BlockID { get; set; }

   public Block { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我有一个Block继承BaseProperty并具有Properties导航属性的类:

public class Block: BaseProperty
{  
   public ICollection<Property> Properties { get; set; }

   [DatabaseGenerated(DatabaseGeneratedOption.Computed)]
   public int? ComputedNumberOfProperties { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

需要注意的是,Block在房地产Property类也是自参考,因为这两个Property和Block继承BaseProperty,我使用的table-per-层次结构的继承.

它一直在工作,并且处于具有实时数据的生产系统中.现在我想向int?基类添加一个字段(只是一个标准属性),当我添加一个迁移时,我得到一个"Sequence contains no elements"错误.

我在https://entityframework.codeplex.com/workitem/569上找到了未解决的问题,因此我尝试了所描述的解决方法并删除了自引用键和导航属性,但迁移失败并出现相同的错误.我现在看起来完全被串起来......

Col*_*lin 1

Block 类中还有一个数据库计算字段。删除它(以及自引用属性)让我可以运行迁移。