我有一张如下表格:
[Table("tblStore")]
public class Store
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid Id { get; set; }
[Required]
public string Name { get; set; }
[Required]
public string Option1 { get; set; }
[Required]
public string Option2 { get; set; }
[Required]
public DateTime Created { get; set; }
}
我需要强制指定Option1或Option2(不为null)。有人可以建议使用EF 6做到这一点吗?
答案 0 :(得分:1)
你可以做一个技巧:将新属性添加到POCO类,这将是Option1
和Option2
串联的结果,并设置为此属性(让我们称之为Options
)属性[Required]
。当然,我们需要从Option1
和Option2
属性中删除此属性,以便为其分配null
值。现在,如果Option1
和Option2
没有值,Options
也将为空,并且由于[Required]
属性,将引发EF错误,当您尝试将此实体插入数据库时:
public class Store
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid Id { get; set; }
[Required]
public string Name { get; set; }
public string Option1 { get; set; }
public string Option2 { get; set; }
[Required]
public string Options { get { return Option1 + Option2; } private set { } }
[Required]
public DateTime Created { get; set; }
}