0

マスクで主キーを生成する必要があります(例BS{100-999}-{Rand(100-999)}:)しかし、EFコードでこのようなキーを生成する方法がわかりません/誰かがこれを理解するのを手伝ってくれませんか?

私のモデル:

[Table("Tickets")]
public class Ticket
{
    public Ticket()
    {
        CreationDate = DateTime.UtcNow;
        LastChangeDate = DateTime.UtcNow;
        UserReviewed = true;
        EmailAlert = true;
    }
    [Key]
    [DatabaseGenerated(System.ComponentModel.DataAnnotations.Schema.DatabaseGeneratedOption.Identity)]
    public Guid Id { get; set; } //now it is Guid But i need this to be string and generated by the above mask
    public string UsersName { get; set; }
    public string Theme { get; set; }
    public string Request { get; set; }
    public DateTime CreationDate { get; set; }
    public string TypeMask { get; set; }
    public string StatusMask { get; set; }
    public int SenderId { get; set; }
    public bool EmailAlert { get; set; }
    public DateTime LastChangeDate { get; set; }
    public bool UserReviewed { get; set; }
    public virtual ICollection<TicketRecord> Answers { get; set; }
    [ForeignKey("StatusMask")]
    public virtual TicketStatus Status { get; set; }
    [ForeignKey("TypeMask")]
    public virtual TicketType Type { get; set; }
    [ForeignKey("SenderId")]
    public virtual UserProfile Sender { get; set; }
    public virtual AttachmentsCollection IncludedFiles { get; set; }
}
4

1 に答える 1

0

EF はキーを生成しません。自分でキーを生成する必要があるか、StoreGeneragedPattern アノテーション/設定を使用してデータベースによってキーが生成されることを EF に知らせます。生成された値の一意性を保証できないため、EF はキーを生成できません。

于 2013-03-19T16:06:15.400 に答える