简体   繁体   English

为实体CodeFirst Ef4定义主键

[英]Defining Primary Key for entity CodeFirst Ef4

I want to define a primary key for a POCO entity but i dont want to decorate the entity with primary key attribute i wanna define that from the context class which extend DbContext 我想为POCO实体定义一个主键,但我不想用主键属性来装饰该实体,我想从扩展DbContext的上下文类中定义它

i know i should use something like: 我知道我应该使用类似:

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

but i dont know how to do that in my context class. 但我不知道如何在我的上下文课堂中做到这一点。

any help? 有什么帮助吗?

In you DbContext -class you can override OnModelCreating like this 在您的DbContext -class中,您可以像这样重写OnModelCreating

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

You should create a class that defines your context, and then you have to override the OnModelCreating method. 您应该创建一个定义上下文的类,然后必须重写OnModelCreating方法。 Try this: 尝试这个:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM