【问题标题】:EF 4.1 CodeFirst with Guid (not generated by DB/Store) as PKEF 4.1 CodeFirst 与 Guid(不是由 DB/Store 生成)作为 PK
【发布时间】:2011-08-24 21:56:13
【问题描述】:

我想创建一个以“客户端生成”GUID 作为主键的模型。我希望自动生成 Guid,但不在数据库上,所以我在持久化之前知道 ID,这对我的域模型很重要。

如何设置:

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

所以我可以做...

 var newEntity = new MyEntity();
 transmitIDBeforePersisting(newEntity.ID);
 context.MyEntities.Add(newEntity);
 context.SaveChanges()

如何设置 MyEntity.ID 以便在我调用 new 时自动生成它,但仍可作为主键正常工作,具有导航属性等?

这类似于using Guid as PK with EF4 Code First,但不是由 Store/DB 生成的。

【问题讨论】:

标签: entity-framework entity-framework-4.1 ef-code-first


【解决方案1】:

在构造函数中设置ID 属性的值,并在ID 属性上使用[DatabaseGenerated(DatabaseGeneratedOption.None)] 属性:

public class MyEntity 
{        
    [DatabaseGenerated(DatabaseGeneratedOption.None)]
    public Guid ID { get; set; }

    public MyEntity()
    {
        ID = Guid.NewGuid();
    }
}

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2012-10-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-13
相关资源
最近更新 更多