实体框架代码第一与Guid

时间:2012-04-20 13:13:37

标签: entity-framework entity-framework-4 entity-framework-4.3

在我的简单类中,我使用数据注释将属性映射到列:

[Table("Member")]
public class Member
{
    [Key]
    public Guid MemberId { get; set; }

    // More properties go here
}

我已经可以在我的桌子上写新成员,但是MemberId总是默认使用新的Guid(0000-000-00 ...)而不是美丽的服务器生成的Guid。

我见过人们在EDMX文件中更改一些名为StoreGeneratedPattern的设置的场景。但是因为我正在使用Code First,所以我没有这个EDMX文件...

那我该如何解决这个问题?

非常感谢任何帮助。

UPDATE !!

好的,我自己找到了答案。您可以使用注释。

[Table("Member")]
public class Member
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public Guid MemberId { get; set; }

    // More properties go here
}

2 个答案:

答案 0 :(得分:6)

使用注释:

[Table("Member")]
public class Member
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public Guid MemberId { get; set; }

    // More properties go here
}

答案 1 :(得分:3)

我一直在类构造函数中初始化我的Guids,因为您不需要/不能使用与int类型键一起使用的自动增量功能。

所以,我会改为......

[Table("Member")]
public class Member
{
    [Key]
    public Guid MemberId (get; set;}

    public Member
    {
      MemberId = Guid.NewGuid();
    }
}