定义实体 CodeFirst Ef4 的主键

发布于 2024-11-17 13:09:44 字数 209 浏览 4 评论 0原文

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

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

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

但我不知道该怎么做在我的上下文课程中。

有什么帮助吗?

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

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?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

等风来 2024-11-24 13:09:44

在您的 DbContext 类中,您可以像这样重写 OnModelCreating

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

In you DbContext-class you can override OnModelCreating like this

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    modelBuilder.Entity<Order>.HasKey(x => x.OrderId);
    base.OnModelCreating(modelBuilder);
}
清醇 2024-11-24 13:09:44

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

public class MyContext: DbContext
{
     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.
Try this:

public class MyContext: DbContext
{
     protected override void OnModelCreating(ModelBuilder modelBuilder)
     {
       modelBuilder.Entity<Order>().HasKey(x => x.OrderId);
       base.OnModelCreating(modelBuilder);
     }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文