gpt4 book ai didi

c# - Entity Framework 可选的一对一关系不起作用

转载 作者:太空宇宙 更新时间:2023-11-03 15:01:07 24 4
gpt4 key购买 nike

我有很多实体。其中一个 OrderLine 实体使用了一些关系。它与 AccountTransaction 有关。当我从上下文中获取 AccountTransaction 类时,我可以使用延迟加载获取 OrderLine 记录。但是当我从上下文中获取 OrderLine 类时 AccountTransaction 导航属性为空。我怎么解决这个问题?

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; }
}

让我知道它是否有效,或者如果您遇到其他问题。 :)

关于c# - Entity Framework 可选的一对一关系不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46077268/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com