【发布时间】:2023-04-03 18:32:02
【问题描述】:
我想为 POCO 实体定义一个主键,但我不想用主键属性装饰实体,我想从扩展 DbContext 的上下文类中定义它
我知道我应该使用类似的东西:
Entity<Order>().HasKey(x => x.OrderId);
但我不知道如何在我的上下文类中做到这一点。
有什么帮助吗?
【问题讨论】:
标签: c# entity-framework-4 entity
我想为 POCO 实体定义一个主键,但我不想用主键属性装饰实体,我想从扩展 DbContext 的上下文类中定义它
我知道我应该使用类似的东西:
Entity<Order>().HasKey(x => x.OrderId);
但我不知道如何在我的上下文类中做到这一点。
有什么帮助吗?
【问题讨论】:
标签: c# entity-framework-4 entity
在DbContext-class 中,您可以像这样覆盖OnModelCreating
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Order>.HasKey(x => x.OrderId);
base.OnModelCreating(modelBuilder);
}
【讨论】:
您应该创建一个定义上下文的类,然后您必须重写 OnModelCreating 方法。 试试这个:
public class MyContext: DbContext
{
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Order>().HasKey(x => x.OrderId);
base.OnModelCreating(modelBuilder);
}
}
【讨论】: