【发布时间】:2014-12-13 11:35:45
【问题描述】:
我的班级电子邮件看起来像:
public class Email
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public string Subject { get; set; }
public string Body { get; set; }
public string From { get; set; }
public DateTime SentOn { get; set; }
public List<string> To { get; set; }
}
为了确保唯一性,我在 Subject、From 和 SentOn 上创建了一个复合键
这产生了当主题超过 128 个字符时,验证失败的问题。所以我只是在上面放了一个[MaxLength] 属性。但是现在它不能是关键列
我该怎么办?有没有办法在不成为密钥的情况下确保唯一性?
【问题讨论】:
-
我可以发送两封相同主题的不同电子邮件。如果
SentOn具有毫秒精度,那么From和SentOn就足够了。 -
而且 From 不应该是 NVarChar(MAX)
标签: c# entity-framework ef-code-first database-indexes