实体框架是唯一的,并接受null

本文关键字:null 框架 唯一 实体 | 更新日期: 2025-04-15 20:26:14

如何创建一个接受空值但也是[Index(IsUnique=true)]的Code First属性?

例如:护照号码不应该重复,也就是IsUnique,但如果用户没有插入一个,那么它默认为null,因此它接受多个null。

实体框架是唯一的,并接受null

因为它不会是唯一的,所以不能这样做。但你可以通过附加一个表来管理它:

public class Person {
    public int Id { get; set; }
}
public class Passport {
    [Key]
    public int PersonId { get; set; }
    [ForeignKey("PersonId")]
    public Person Person { get; set; }
    [Index(IsUnique=true)]
    public string PassportId { get; set; }
}

请注意,有些国家不允许存储此类数字。