【Bug】Lambda expression used inside Include is not valid

问题代码

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();

你可能感兴趣的:(#,WEB_C#,bug)