我在EF中遇到一对一的关系。
通常情况下,我会定义(一对多)关系的关键方面,如下所示:
[ForeignKey("OrderId")]
public virtual Order Order { get; set; }
但是当我以一对一的关系这样做时,它无法确定主要的结束......
无法确定之间关联的主要结束 类型' Retailer.ClientDB.EF.OrderOrigin'和 ' Retailer.ClientDB.EF.Order&#39 ;.这个的主要目的 必须使用以下任一方式显式配置关联 关系流畅的API或数据注释。
奇怪的是,如果我将ForeignKeyAttribute放在id列上,我就不会收到错误,就像我在这里使用Order和OrderOrigin之间的关系一样。
[Table("ORDER_ORIGIN")]
public class OrderOrigin
{
[Key, Column("uidorder"), ForeignKey("Order")]
public int OrderId { get; set; }
[Column("importfilename")]
public string ImportFileName { get; set; }
public virtual Order Order { get; set; }
}
[Table("ORDERS")]
public class Order
{
[Column("uidorder")]
public int Id { get; set; }
[Column("uidstatus")]
public int OrderStatus { get; set; }
public virtual OrderOrigin OrderOrigin { get; set; }
}
但是现在,当我尝试像这样包含()时(通常效果很好)......
public List<ClientDB.EF.OrderOrigin> ListOrderOrigin_WithOrder(Common.Data.DBContext context)
{
return context.EFDatabase.OrderOrigin.Include("Order").ToList();
}
...当我尝试访问Order时(在上下文处理完毕后),它无法包含以下订单和错误:
ObjectContext实例已被释放,无法再使用 对于需要连接的操作。
任何人都可以建议我如何编写一对一的关系来实现这一点吗?
由于