.net EF AddOrUpdate不更新外键对象
我有一个实体持有,它引用了另一个实体工具:.net EF AddOrUpdate不更新外键对象,.net,entity-framework,entity-framework-6,.net,Entity Framework,Entity Framework 6,我有一个实体持有,它引用了另一个实体工具: public class Holding { public virtual Instrument Instrument { get; set; } } 我使用EF 6.1.3配置关系,如下所示。仪器没有参考/导航属性来持有: modelBuilder.Entity<Holding>().Property(h => h.Code).IsRequired(); mo
public class Holding
{
public virtual Instrument Instrument { get; set; }
}
我使用EF 6.1.3配置关系,如下所示。仪器没有参考/导航属性来持有:
modelBuilder.Entity<Holding>().Property(h => h.Code).IsRequired();
modelBuilder.Entity<Holding>().Property(h => h.MarketValue).IsRequired();
modelBuilder.Entity<Holding>().HasRequired(h => h.Instrument);
modelBuilder.Entity().Property(h=>h.code.IsRequired();
modelBuilder.Entity().Property(h=>h.MarketValue.IsRequired();
modelBuilder.Entity().HasRequired(h=>h.Instrument);
我遇到了一个问题,context.Holdings.AddOrUpdate(p=>p.code,holding)代码>不更新保留记录上的仪器。如果我改变了一个不同的属性,比如MarketValue,MarketValue会被更新,但永远不会更新。如果我添加了一个保持,则仪器被正确引用。只是更新没有按预期工作
我遗漏了什么?您能提供更多的问题背景吗,因为AddOrUpdate
不是一个“正常”的EF方法,而是在dbsetmigrationextensions
中定义的扩展方法,用于数据库种子设定期间非常简单的使用场景。并且根本不处理导航属性。看起来您正试图在断开连接的实体场景(?)中使用它,在这种情况下,显然无法使用它。因此,如果您正在寻求不基于AddOrUpdate
的特定问题解决方案,您需要提供使用场景()。如果您不希望您的奖金付诸东流,我会很快按照Ivan的建议进行操作。至少我们需要查看执行AddOrUpdate
的代码。不要认为赏金会神奇地让问题变得可以回答。你能为这个问题提供更多的上下文吗?因为AddOrUpdate
不是一个“正常”的EF方法,而是在dbsetmigrationextensions
中定义的扩展方法,用于数据库种子设定期间非常简单的使用场景。并且根本不处理导航属性。看起来您正试图在断开连接的实体场景(?)中使用它,在这种情况下,显然无法使用它。因此,如果您正在寻求不基于AddOrUpdate
的特定问题解决方案,您需要提供使用场景()。如果您不希望您的奖金付诸东流,我会很快按照Ivan的建议进行操作。至少我们需要查看执行AddOrUpdate
的代码。不要认为赏金会神奇地让一个问题有答案。