Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net EF AddOrUpdate不更新外键对象_.net_Entity Framework_Entity Framework 6 - Fatal编程技术网

.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
的代码。不要认为赏金会神奇地让一个问题有答案。