【问题标题】:How to create a navigation property with same primary key as parent table?如何创建与父表具有相同主键的导航属性?
【发布时间】:2017-07-14 12:25:23
【问题描述】:

两张表:

Orders [Key: OrderId]
OrderStats [Key: OrderId]

每个订单行在 OrderStats 中要么有 0 行,要么有 1 行。所以 orderId 1 在 OrderStats 中有一行,主键 OrderId 为 1

我想在 Orders 上创建一个导航属性,所以我可以这样做...

Console.Writeline(myOrder.OrderStats.Profit)

如何在 Entity Framework 6 中执行此操作,代码优先?

OrderStats 是一个表格,其中包含有关每个订单的一些商业智能信息,这些信息会按计划进行更新。出于多种实际原因,该表是单独的,与本案例无关。

【问题讨论】:

  • 请显示涉及的实体模型/配置的相关部分并告诉我们有什么问题?

标签: entity-framework ef-code-first


【解决方案1】:

您可以在OnModelCreating 中使用:

modelBuilder.Entity<Order>().HasOptional(e => e.OrderStats).WithRequired();

如果您在OrderStats 中还有一个Order 导航属性,则如下所示

modelBuilder.Entity<Order>().HasOptional(e => e.OrderStats).WithRequired(e => e.Order);

EF 将在执行数据库操作时保持两个实体的主键相同。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多