0

我有一个应用程序,其中大部分都有一个简单的用户表。PK,UserID,是一个 Guid。我首先使用 EF 代码,以下代码一切正常:

[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid UserID { get; set; }

但是,在我的应用程序中,我实际上想强制使用 Guid。这是一种特殊情况,在这个代码块之外,其他任何地方都应该按预期从数据库中生成 Guid。

我知道在我编写的 Initializer 中的 Seed 函数中,我可以很好地插入 ID。如何重现这些条件,以便在这种极端情况下插入标识值?

4

1 回答 1

1

如果不是自动生成的身份插入...使用 Guid 作为主键,然后具有 NewGuid() 的默认值,该怎么办。这样,如果您不提供 Guid 值,则由数据库生成一个。

不需要SP。

编辑:

或者没有自动生成的 id,让实体本身控制初始值。如果您在构建后设置它的值,那么就可以了。

通过对相关实体类进行小的更改,您可以实现您想要的。

    class MyEntity {
        public Guid EntityId { get; set; }

        public MyEntity() {
            EntityId = Guid.NewGuid();
        }
    }
于 2013-01-03T17:47:12.950 回答