为实体Code First Ef4定义主键

时间:2011-06-25 20:16:56

标签: c# entity-framework-4 entity

我想为POCO实体定义主键,但我不想用主键属性修饰实体我想从扩展DbContext的上下文类中定义它

我知道我应该使用类似的东西:

Entity<Order>().HasKey(x => x.OrderId);

但我不知道如何在我的上下文类中这样做。

任何帮助?

2 个答案:

答案 0 :(得分:2)

在您DbContext - 课程中,您可以像这样覆盖OnModelCreating

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    modelBuilder.Entity<Order>.HasKey(x => x.OrderId);
    base.OnModelCreating(modelBuilder);
}

答案 1 :(得分:-1)

您应该创建一个定义上下文的类,然后必须重写OnModelCreating方法。 试试这个:

public class MyContext: DbContext
{
     protected override void OnModelCreating(ModelBuilder modelBuilder)
     {
       modelBuilder.Entity<Order>().HasKey(x => x.OrderId);
       base.OnModelCreating(modelBuilder);
     }
}