我有很多实体。其中一个OrderLine
实体使用一些关系。它与AccountTransaction
的关系。当我从上下文中获得AccountTransaction
类时,我可以通过懒负载获得OrderLine
记录。但是,当我从上下文中获得OrderLine
类时,AccountTransaction
导航属性为null。我怎么解决这个问题?
public partial class OrderLine : Base
{
[Key, ForeignKey("AccountTransaction")]
public int OrderLineId { get; set; }
public virtual AccountTransaction AccountTransaction { get; set; }
}
public class AccountTransaction
{
[Key]
public int TransactionId { get; set; }
[ForeignKey("OrderLine")]
public int? OrderLineId { get; set; }
public virtual OrderLine OrderLine { get; set; }
}
var orderLine = context.OrderLines.Find(167069);
var accTransaction = context.AccountTransactions.Find(38770);
//orderLine.AccountTransaction; //here account transaction is null
//accTransaction.OrderLine;//here orderLine is not null.
您正在滥用[ForeignKey]
。它用于指定从子记录中的关系的密钥字段,在这种情况下,这将是AccountTransaction
。尝试将模型更改为以下:
public partial class OrderLine : Base
{
[Key]
public int OrderLineId { get; set; }
public virtual AccountTransaction AccountTransaction { get; set; }
}
public class AccountTransaction
{
[Key]
public int TransactionId { get; set; }
[Index(IsUnique=true)]
public int? OrderLineId { get; set; }
[ForeignKey("OrderLineId")]
public virtual OrderLine OrderLine { get; set; }
}
让我知道它是否有效,还是遇到其他问题。:)