为什么删除了Guid列?

时间:2013-02-11 05:09:02

标签: c# entity-framework ef-code-first entity-framework-5 guid

我需要为每一行提供唯一的哈希值,因此我创建了一个类型为Guid的列。

public class SendingLog
{
    [Key]
    public int SendingLogId { get; set; }

    [Required, ForeignKey("Apartment")]
    public int ApartmentId { get; set; }

    public virtual Apartment Apartment { get; set; }

    Guid RowGuid { set; get; }

    [MaxLength(256), Required]
    public string Email { get; set; }

    [Required]
    public DateTime SentTime { get; set; }

    public int SentByUserId { get; set; }
}

但是,代码首次迁移会生成以下代码。

public override void Up()
{
    CreateTable(
        "dbo.SendingLogs",
        c => new
            {
                SendingLogId = c.Int(nullable: false, identity: true),
                ApartmentId = c.Int(nullable: false),
                Email = c.String(nullable: false, maxLength: 256),
                SentTime = c.DateTime(nullable: false),
                SentByUserId = c.Int(nullable: false),
            })
        .PrimaryKey(t => t.SendingLogId)
        .ForeignKey("dbo.Apartments", t => t.ApartmentId, cascadeDelete: true)
        .Index(t => t.ApartmentId);
}

为什么删除Guid列?

1 个答案:

答案 0 :(得分:4)

这是因为它的范围是private

通过省略前面的public,代码第一个迁移生成器不会将其视为需要担心的属性。

将其更改为:

public Guid RowGuid { set; get; }