EF - 一对一关系:ObjectContext实例已被释放

时间:2014-10-01 12:12:02

标签: c# entity-framework one-to-one

我在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实例已被释放,无法再使用   对于需要连接的操作。

任何人都可以建议我如何编写一对一的关系来实现这一点吗?

由于

0 个答案:

没有答案