每个层次结构的EF6表,在派生属性上具有唯一索引

时间:2016-12-21 14:25:35

标签: c# sql .net entity-framework

所以我在实体框架代码中首先有一个每层次的表继承模型,我想在其中一个派生属性上设置一个唯一的索引约束。目前它看起来像这样:

public abstract class BaseObj { ...shared props }

public class DerivedObj : BaseObj { ...more props }

public class AnotherObj : BaseObj {

    [Index(IsUnique = true)]
    public int Prop { get; set; }
}

如果我尝试插入任何DerivedObj,则由于索引与前一个空条目匹配,它在第一个之后的所有内容都会失败。

我知道这可以在带有过滤索引的SQL中(或者只是允许重复的空值,或者通过检查EF鉴别器列),但是如何在未经过人工干预的情况下进行设置,以便将来进行数据库迁移?

相关:Creating a UNIQUE Filtered Index for NULL values on Entity Framework

如果有人能指出我正确的方向,我也不会害怕使用EF的内部或使用不支持的方法来实现这一点

0 个答案:

没有答案