实体框架核心包括警告

时间:2021-06-22 09:58:57

标签: entity-framework asp.net-core

当 EF (2.2 & 3) 在查询蠕虫时,我收到以下警告:

<块引用>

导航 '[x].something' 的 Include 操作是不必要的,因为导航在最终查询结果中无法访问而被忽略。

我知道它的原因,我正在寻找一种解决方案来抑制它。

是什么原因造成的?返回新类型列表的扩展,类似于书页,对象包含页面上的项目列表以及 3 个额外的道具、所有项目的总数、页面和页面大小。

   public static BookPageList<T> ToBookPageList<T>(this IQueryable<T> dataSet, IBookPageFilter filter)
    {
        var result = new BookPageList<T>();
        IQueryable<T> range = dataSet
            .Skip((filter.Page- 1) * filter.PageSize)
            .Take(filter.PageSize);
        result.AddRange(range.ToList());
        result.Total = dataSet.Count(); // here wormup warning happens
        result.PageSize = filter.PageSize;
        result.Page = filter.Page;
        return result;
    }

如果数据集有包含,则会显示警告。

 var bookPageItems = dbcontext.Item
    .Include(x => x.NavProp1)
    .Include(x => x.NavProp2)
    .OrderBy(x => x.Id)
    .ToBookPageList(filter);

我想删除警告,因为它会污染云日志,有时只是很多,并且不能更改日志记录的详细程度。

有什么办法可以在书页扩展方法中处理吗?我真的很喜欢这个扩展。

0 个答案:

没有答案