实体框架正在尝试在保存实体的同时保存外键表.如何防止这种情况发生
本文关键字:保存 实体 何防止 情况 框架 | 更新日期: 2024-10-23 14:18:49
当我按照下面的方式保存belwo交易对手频率实体时,它试图添加附加到它的legalEntity。我该如何防止这种情况。我只需要插入CounterpartyFrequencyId和LegalEntityId的Counterpartyffrequency表。Plz分享你的想法
[DataContract]
public class CounterpartyFrequency : EntityBase
{
[DataMember]
[Key]
public int CounterpartyFrequencyId { get; set; }
[DataMember]
public string LegalEntityId { get; set; }
[DataMember]
[ForeignKey("LegalEntityId")]
public LegalEntity LegalEntity { get; set; }
}
我要保存的实体高于
using (var dbContext = ConfigurationContext.CreateContext(dbConnection))
{
foreach (var counterpartyFrequency in counterpartyFrequencies)
{
if (
dbContext.CounterpartyFrequencies.Any(
(x) => x.CounterpartyFrequencyId == counterpartyFrequency.CounterpartyFrequencyId))
{
dbContext.CounterpartyFrequencies.Attach(counterpartyFrequency);
}
else
{
dbContext.CounterpartyFrequencies.Add(counterpartyFrequency);
}
}
var noc = dbContext.SaveChanges();
}
您需要将LegalEntity设置为虚拟:
[DataContract]
public class CounterpartyFrequency : EntityBase
{
[DataMember]
[Key]
public int CounterpartyFrequencyId { get; set; }
[DataMember]
public string LegalEntityId { get; set; }
[ForeignKey("LegalEntityId")]
public virtual LegalEntity LegalEntity { get; set; }
}