1:1关系错ID

时间:2016-04-26 05:38:56

标签: c# .net entity-framework

我有两个连接的类(但不幸的是没有通过外键):

public class Order
{
    public int Id { get; set; }
    public Status Status { get; set; }
}
public class Status
{
    public int Id { get; set; }
    public int OrderId { get; set; }
    public Order Order { get; set; }
}

在这种情况下,只有Status表有一个"引用"订单。一个状态属于一个订单。

如何告诉DbModelBuilder外键是OrderId而不是Id

public static void OnModelCreating(DbModelBuilder modelBuilder)
{
    modelBuilder.Entity<Order>()
        .HasOptional(a => a.Status)
        .WithRequired(x => x.Order)
        .WillCascadeOnDelete(true);
}

当我在Status中加入Order时,它会获得与Id具有相同Order的状态。

1 个答案:

答案 0 :(得分:0)

[ForeignKey("Order")]属性上应用OrderId,这将使其成为Order实体的外键,如下所示。

public class Status
{
    public int Id { get; set; }
    [ForeignKey("Order")]
    public int OrderId { get; set; }
    public Order Order { get; set; }
}