8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

如果我尝试更新未修改的外键,Entity Framework 将存储 null

Parm 2月前

30 0

我正在尝试使用实体框架更新记录。对于两个字段 PropertyGroupingId 和 PropertyStatusId ,如果它们不同/已修改,则它们会正常更新,但如果未更改(相同

我正在尝试使用实体框架更新记录。对于两个字段 PropertyGroupingId PropertyStatusId ,如果它们不同/已修改,则它们会正常更新,但如果未更改(与数据库中的值相同),则它们将存储为 null。

如果字段根据数据库没有变化,则以下方法使该字段为空,例如,如果记录的 PropertyStatusId = 12 并且在数据库中也是 12,则在更新时它将变为空。

public async Task Edit(Property record)
    {
        if (Context == null)
        {
            throw new RuntimeWrappedException("Must Initialize Context in child constructor");
        }

        Repo.Update(record);

        await Context.SaveChangesAsync();
    }

或者,这种方法对我有用:

public async Task Edit(Property record)
    {
        if (Context == null)
        {
            throw new RuntimeWrappedException("Must Initialize Context in child constructor");
        }
       
        // Preserving the ids.
        var gId = record.PropertyGroupingId;
        var sId = record.PropertyStatusId;

        // This step makes the fields (PropertyGroupingId and PropertyStatusId) null if unchanged.
        await Context.Entry(record).Reference(p => p.PropertyGrouping).LoadAsync();
        await Context.Entry(record).Reference(p => p.PropertyStatus).LoadAsync();
        
         
         // Only in case of unmodified data according to db.     
        // Since above step make the fields null, I've to assign them back from preserved.
      
        if(record.PropertyGroupingId == null)
        {
            record.PropertyGroupingId = gId;
        }
        
        if(record.PropertyStatusId== null)
        {
            record.PropertyStatusId= sId;
        }
        

        Repo.Update(record);

        await Context.SaveChangesAsync();
    }

我的问题是为什么会发生这种情况?

是否存在 ef 核心错误?或者我必须加载关系虚拟对象。

帖子版权声明 1、本帖标题:如果我尝试更新未修改的外键,Entity Framework 将存储 null
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由Parm在本站《asp.net-core》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 您有任何自定义更新方法吗?您如何定义模型?您如何在 dbcontex 中配置相应的外键或导航关系?

返回
作者最近主题: