ef代码首先在所有类型上生成guid

时间:2012-03-05 10:51:42

标签: entity-framework ef-code-first guid conventions

我想首先使用代码并让数据库为我的所有实体类型生成guid主键(因为这似乎不是让ef自动执行此操作的好方法)。

我的所有实体都禁止使用一些(用于asp.net成员资格)继承自抽象基类“Entity”

public abstract class Entity
{
    public Guid Id { get; set; }
}

我的实体看起来像

public class Company : Entity
    {
        public string Name { get; set; }

        public string Logo { get; set; }
    }

如果我离开并运行它,CF会创建表格,其中包含公司和其他实体派生类的单独表格,但是数据库似乎不会生成guid。

要获取生成的guid,我已将以下内容添加到我的DBContext

 protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            base.OnModelCreating(modelBuilder);


            modelBuilder.Entity<Entity>()
                .Property(e => e.Id)
                .HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);
}

我希望所有主键guid都由数据库生成。

当我现在运行时,CF为所有称为“实体”的实体创建一个表,该实体具有设置为可为空的派生类的列的混合。

我怎样才能使每个派生类都有一个表并自动为我生成一个guid,而不必为每个实体单独添加约定?

0 个答案:

没有答案