EF 6流畅的api IsRequired属性

时间:2013-11-04 16:30:52

标签: c# entity-framework validation

我有两个班:地址和城市。我希望在地址类中需要city属性,但是当我将property(p => p.City).IsRequired()添加到流畅的api时,我得到City必须是非可空值类型的错误,但是当我用[Required]注释装饰City属性时,一切正常。

那么如何用流畅的api来实现呢?为什么property(p => p.Street).IsRequired()适用于字符串 - 字符串不是非可空的值类型

public class Address
    {
        public int AddressId { get; private set; }
        public string Street { get; internal set; }
        [Required]
        public City City { get; internal set; }            
    }

public class CIty
{
        public int CityId {get; private set; }
        public string Name {get; internal set;}
}

1 个答案:

答案 0 :(得分:4)

为了指定关系的基数,您需要使用HasRequired方法 - Property方法仅用于标量属性。

modelBuilder.Entity<Address>().HasRequired(a => a.City);