如何在实体框架5中使用guid作为主键列(标识),默认值为newid()?

时间:2012-09-11 15:19:16

标签: entity-framework-5

我使用“模型优先”实体框架5.0。在4.x中有一个错误:设计者无法使用identy和defaultValue处理主列guid:“newid()”(来源:http://leedumond.com/blog/using-a-guid-as-an-entitykey-in-entity-framework-4/

在EF5中仍然无法使用它吗?将c#guid转换为sql“uniqueid”有什么问题?

1 个答案:

答案 0 :(得分:9)

这对我来说非常适合数据库优先,但在您创建数据库后可能会对您有所帮助 -

您可以使用Server Management Studio(而非通过EF)更新表并将默认值设置为newid()

然后在EF模型中,将StoreGeneratedPatternnone更新为Identity

2013编辑: 为了完整性,在EF 5.0 Codefirst中,您可以指定以下数据注释:

[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public Guid TableIdColumn { get; set; }