实体框架正在尝试在保存实体的同时保存外键表.如何防止这种情况发生

本文关键字:保存 实体 何防止 情况 框架 | 更新日期: 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; }
}