当前位置:网站首页>【Bug】C# IQueryable里的元素更改不了值

【Bug】C# IQueryable里的元素更改不了值

2022-06-23 22:18:00 我把生活交给了工作

代码

代码有被更改过,也只是节选,不过大同小异

var sysPersonnels=SysPersonnelRepository.FindAsIQueryable(f => f.IsDeleted == 1 && f.SyncWithDhDeletedTime == null).IgnoreQueryFilters();

sysPersonnels= personel_Erp.Where(f => f.PersonnelName.Contains("测试")).Take(2);

 foreach (SysPersonnel personnel in sysPersonnels)
{
    
    personnel.SyncWithDhDeletedTime = DateTime.Now;
}
//foreach 完sysPersonnels里的SysPersonnel 的SyncWithDhDeletedTime 还是没有值 导致下列更新不起作用
SysPersonnelRepository.UpdateRange(sysPersonnels, x => new {
    
    x.SyncWithDhDeletedTime
}); 

原因

更改为List之后就可以了

  var personel_Erp=SysPersonnelRepository.FindAsIQueryable(f => f.IsDeleted == 1 && f.SyncWithDhDeletedTime == null).IgnoreQueryFilters().ToList();
 personel_Erp= personel_Erp.Where(f => f.PersonnelName.Contains("测试")).Take(2).ToList();

具体原因不知,还望大神指点一二

网上有类似问题也没太看懂的:为啥更改不了IQueryable里面元素的属性?

原网站

版权声明
本文为[我把生活交给了工作]所创,转载请带上原文链接,感谢
https://blog.csdn.net/weixin_44231544/article/details/125422178