另一个表上的EF核心3.1 dbcontext.savechanges异常

问题描述

我试图在称为NsTraveldistance的表中插入一条记录,但是在dbcontext.savechanges()上,另一个表引发了异常,我无法弄清楚为什么以及如何解决它。

我正在使用EF核心动力工具对现有数据库中的代码优先模型进行逆向工程。

引发异常的代码

_dbContext.Set<NsTraveldistance>().Add(new NsTraveldistance()
        {
            Origin = postalCodeOrigin.Substring(0,4),Destination = postalCodeDestination.Substring(0,Duration = travel@R_215_404[email protected],distance = travel@R_215_404[email protected]
        });
        _dbContext.SaveChanges();

我得到的异常:实体类型'NsEmployeeGroupSettings'的属性'GroupId'是键的一部分,因此无法修改标记为已修改。要更改 具有标识外键的现有实体,首先删除依赖项,然后调用“ SaveChanges”,然后将依赖项与新的主体相关联。“

因为该异常不是由于NsTraveldistance实体引起的,所以我认为数据库上下文有问题,但是我无法弄清楚是什么。

为NsEmployeeGroupSettings实体生成代码

modelBuilder.Entity<NsEmployeeGroupSettings>(entity =>
        {
            entity.HasKey(e => e.GroupId)
                .HasName("PK___nsEmplo__149AF30AD10600C6");

            entity.ToTable("_nsEmployeeGroupSettings");

            entity.Property(e => e.GroupId)
                .HasColumnName("GroupID")
                .ValueGeneratednever();

            entity.HasOne(d => d.Group)
                .WithOne(p => p.NsEmployeeGroupSettings)
                .HasForeignKey<NsEmployeeGroupSettings>(d => d.GroupId)
                .OnDelete(DeleteBehavior.ClientSetNull)
                .HasConstraintName("FK___nsEmploy__Group__371C33B8");
        });

以及为NsTraveldistance实体生成代码

            modelBuilder.Entity<NsTraveldistance>(entity =>
        {
            entity.HasKey(e => new { e.Origin,e.Destination });

            entity.ToTable("_nsTraveldistance");

            entity.Property(e => e.Origin)
                .HasMaxLength(6)
                .IsUnicode(false);

            entity.Property(e => e.Destination)
                .HasMaxLength(6)
                .IsUnicode(false);
        });

关于整个问题的最奇怪的部分是,它一直起作用,直到我再次生成dbcontext来包含一些新表和数据库中的更改为止,这些更改都与这两个实体都不相关。

任何帮助将不胜感激!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)