Определение первичного ключа для объекта CodeFirst Ef4 - PullRequest
0 голосов
/ 26 июня 2011

Я хочу определить первичный ключ для объекта POCO, но я не хочу украшать объект атрибутом первичного ключа. Я хочу определить его из класса контекста, который расширяет DbContext

я знаю, что должен использовать что-то вроде:

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

но я не знаю, как это сделать в моем классе контекста.

любая помощь?

Ответы [ 2 ]

2 голосов
/ 26 июня 2011

В вашем DbContext -классе вы можете переопределить OnModelCreating вот так

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    modelBuilder.Entity<Order>.HasKey(x => x.OrderId);
    base.OnModelCreating(modelBuilder);
}
0 голосов
/ 26 июня 2011

Вы должны создать класс, который определяет ваш контекст, а затем вы должны переопределить метод OnModelCreating. Попробуйте это:

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