gpt4 book ai didi

c# - EF6 codefirst 中唯一的多列

转载 作者:太空狗 更新时间:2023-10-30 01:35:17 25 4
gpt4 key购买 nike

我有一个看起来像这样的类电子邮件:

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; }
}

为了确保唯一性,我在SubjectFromSentOn 上创建了一个复合键

这造成了当 Subject 超过 128 个字符时,验证失败的问题。所以我只是在上面放了一个 [MaxLength] 属性。但是现在不能成为关键列了

我该怎么办?有没有办法在不成为 key 的情况下确保唯一性?

最佳答案

如果您使用的是 EF 6.1,则可以使用 Multiple-Column Indexes特点:

public class Email
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
[Index("IX_EmailUniqueness", 1, IsUnique = true)]
public string Subject { get; set; }
public string Body { get; set; }
[Index("IX_EmailUniqueness", 2, IsUnique = true)]
public string From { get; set; }
[Index("IX_EmailUniqueness", 3, IsUnique = true)]
public DateTime SentOn { get; set; }
public List<string> To { get; set; }
}

关于c# - EF6 codefirst 中唯一的多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26432576/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com