我继承了一个web应用程序,用于定义实体之间关系的数据注释突然停止工作。
我尝试了各种各样的事情,我不明白为什么希望这里的人能指出这个问题。
的实体
顺序
[Table("order")]
public class Order
{
[Column("id")]
public int Id { get; set; }
public virtual ICollection<OrderEntry> OrderEntries { get; set; }
[ForeignKey("Id")]
public virtual OrderClient OrderClients { get; set; }
public Order()
{
OrderEntries = new HashSet<OrderEntry>();
}
}
没什么特别的。一个订单可以包含多个条目,但一个订单只能有一个客户机。
订单输入
看起来像这样:
[Table("order_entry")]
public class OrderEntry
{
[Column("id")]
public int Id { get; set; }
[Column("order_id")]
public int OrderId { get; set; }
[ForeignKey("OrderId")]
public virtual Order Order { get; set; }
}
OrderEntries运行良好,我们可以做一些基本的工作,包括但不存在问题:
ctx.Orders.Include(x => x.OrderEntries).ToList();
order\u客户端
表,在与顺序的多对一关系中。
这个
order\u客户端
实体:
[Table("order_client")]
public class OrderClient
{
[Column("id")]
public int Id { get; set; }
[Column("order_id")]
public int OrderId { get; set; }
public virtual ICollection<Order> Orders { get; set; }
public OrderClient()
{
Orders = new HashSet<Order>();
}
}
[ForeignKey(“OrderId”)]
[反向属性(“订单”)]
和
顺序
我在这里完全被难住了。不幸的是,我们无法将应用程序的当前实例移动到fluent API,因为更改影响超过了SLA协议,因此我们需要解决当前问题。
任何想法都会受到欢迎。
原始开发人员错误地创建了客户-订单关系。他说一个订单可以有多个客户,例如一个客户有多个订单。