我正在努力使AnswerString
在共享相同ModuleID
值的答案中成为唯一的。我将如何实现这一目标?
public class Answer
{
public int AnswerID { get; set; }
[MaxLength(25)]
[Required]
[Key]
public string AnswerString { get; set; }
public int ModuleID { get; set; }
public int PictureCount { get; set; }
}
答案 0 :(得分:2)
将此属性添加到AnswerString:
[Index("IX_AnswerStringModuleId",2,IsUnique = true)]
然后将此属性添加到ModuleId:
[Index("IX_AnswerStringModuleId",1, IsUnique = true)]
基本上,这会设置一个唯一约束,其中ModuleId和AnswerString的组合必须是唯一的。
也请参阅此答案:Unique Key constraints for multiple columns in Entity Framework
答案 1 :(得分:0)
我建议为属性创建一个属性,该属性将在类或属性级别进行评估。这将在对象/模型中应用您的业务逻辑,而不依赖于EF。如果您不打算这样做,那么我建议使用上面建议的属性或对表本身应用约束。