C# 实体框架正在尝试将外键表与实体保存一起保存。如何预防?
当我保存belwo CounterpartyFrequency实体(如下所示)时,它试图添加附加的法律效力。我怎样才能防止这种情况。我只需要使用CounterpartyFrequencyId和LegalEntityId插入counterpartyfrequency表。请分享你的想法C# 实体框架正在尝试将外键表与实体保存一起保存。如何预防?,c#,entity-framework-4.1,C#,Entity Framework 4.1,当我保存belwo CounterpartyFrequency实体(如下所示)时,它试图添加附加的法律效力。我怎样才能防止这种情况。我只需要使用CounterpartyFrequencyId和LegalEntityId插入counterpartyfrequency表。请分享你的想法 [DataContract] public class CounterpartyFrequency : EntityBase { [DataMember] [Key]
[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();
}
您需要将法律性设置为虚拟:
[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; }
}
但仍然给出了错误“System.Data.Entity.Infrastructure.DbUpdateException:更新条目时出错。有关详细信息,请参见内部异常。-->System.Data.UpdateException:更新条目时出错。有关详细信息,请参见内部异常。-->System.Data.SqlClient.SqlException:无法将值NULL插入到“IsAffiliate”列、表“common.LegalEntity”中;列不允许空值。INSERT失败。“谢谢,我将法律属性设置为虚拟,当传递null时,问题得到解决