5

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

[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 文件......

那么我将如何解决这个问题呢?

很感谢任何形式的帮助。

更新!!

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

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

    // More properties go here
}
4

2 回答 2

6

使用注释:

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

    // More properties go here
}
于 2012-06-26T10:44:40.123 回答
3

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

所以,我会换成...

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

    public Member
    {
      MemberId = Guid.NewGuid();
    }
}
于 2012-04-20T13:21:09.510 回答