entity-framework - EntityCommandExecutionException: 无效的列名'Entity_Id'

  显示原文与译文双语对照的内容

背景

我使用框架API的实体Fluent将实体映射到数据库。

实体


public class Ticket
{
 public int Id { get; set; }

 public virtual SalesOrder SalesOrder { get; set; }
 public int SalesOrderId { get; set; }

 public virtual ICollection<TicketLine> Lines { get; set; }
}

public class SalesOrder
{
 public int Id { get; set; }
 public virtual ICollection<Ticket> Tickets { get; set; }
}

public class TicketLine
{
 public int Id { get; set; }

 public Ticket Ticket { get; set; }
 public int TicketId { get; set; }
}

映射


public class TicketMap : EntityTypeConfiguration<Ticket>
{
 public TicketMap() {}
}

public class SalesOrderMap : EntityTypeConfiguration<SalesOrder>
{
 public SalesOrderMap()
 {
 HasMany(t => t.Tickets)
. WithRequired(t => t.SalesOrder)
. HasForeignKey(t => t.SalesOrderId);
 }
}

public class TicketLineMap : EntityTypeConfiguration<TicketLine>
{
 public TicketLineMap() {}
}

问题

运行与 Ticket 相关的查询时,会收到以下 EntityCommandExecutionException:

无效的列名称'ticket_id'。

我尝试过

  1. 确保引用 Ticket的所有实体都定义了它们的关系
  2. 确保没有重复的导航属性
  3. 正在这里站点上检查这里异常的其他答案
时间: 作者:

问题是我忘记告诉 Entity Framework 如何将 TicketTicketLine 关联起来。

通过配置关系来解决这里问题:


HasMany(t => t.Lines)
. WithRequired(t => t.Ticket)
. HasForeignKey(t => t.TicketId);

作者:
...