zl程序教程

您现在的位置是:首页 >  其他

当前栏目

【Bug】Lambda expression used inside Include is not valid

BUG not is lambda valid include expression used
2023-09-11 14:14:50 时间

问题代码

Include中使用的Lambda表达式无效

List<BizDictionary> dics = DBServerProvider.DbContext
                   .Set<BizDictionary>()
                   .Where(x => x.IsEnable == 1)
                   .Include(c => c.BizDictionaryDetailList.Where(f=>f.IsEnable==1)).ToList();

原因

可能是EF Core版本太低不支持 当前版本3.1.16 要5.0及以上
EF Core 5.0 中的新增功能

解决

改用select后处理子表

 List<BizDictionary> dics = DBServerProvider.DbContext
                   .Set<BizDictionary>()
                   .Where(x => x.IsEnable == 1)
                   .Include(c => c.BizDictionaryDetailList).Select(f=>new BizDictionary
                   {
                       Id=f.Id,
                       OrderNo=f.OrderNo,
                       DicName=f.DicName,
                       DicNo=f.DicNo,
                       Config=f.Config,
                       DicUrl=f.DicUrl,
                       DicValueKey=f.DicValueKey,
                       Remark=f.Remark,
                       IsEnable=f.IsEnable,
                       DicNameKey=f.DicNameKey,
                       DicType=f.DicType,
                       BizDictionaryDetailList=f.BizDictionaryDetailList.Where(f=>f.IsEnable==1).ToList()
                   }).ToList();