Won't Fix
Last Updated: 24 Sep 2026 14:09 by ADMIN
Mvw Developer
Created on: 11 Mar 2021 14:37
Category: UI for ASP.NET Core
Type: Bug Report
0
Bug: memory leak when using ToDataSourceResult with Entity Framework core 2

Issue

Using any overload of ToDataSourceResult(Async) with a DataSourceRequest containing filter descriptors on an IQueryable provided by Entity Framework core 2.x, causes Entity Framework's "Query cache" to fill up for different filter values, leaking memory in the process. This is caused by using Expression.Constant in the generated expression trees for a DataSourceRequest's FilterDescriptors. Refer to https://github.com/dotnet/efcore/issues/14859 for more details about why this leaks memory.

Since Entity Framework's cache is always missed for new filter values, performance is also degraded due to this issue.

The issue is not present when using Entity Framework core 3 or greater. Apparently using Expression.Constant is not an issue on these version.

I have attached a minimal working example that illustrates the memory leak.

Fix

This issue can be fixed by changing FilterDescriptorExpressionBuilder.CreateValueExpression to not return a ConstantExpression, but a MemberExpression instead. Entity Framework 2.x will correctly parameterize the MemberExpression, causing the query cache to be hit correctly for queries that only differ in parameter values. It won't parameterize ConstantExpressions. Refer to https://stackoverflow.com/a/60516780/147993 for an example of generating a MemberExpression instead of a ConstantExpression.

Attached Files:
2 comments
ADMIN
Neli
Posted on: 24 Sep 2026 14:09

Hello,

This behavior was originally reported over several years ago and has not received significant demand or follow-up from the community since then. This is why we plan to prioritize more impactful and widely requested improvements.

If this limitation is still affecting your scenario, please share additional context or use cases. This will help us better assess the severity and reconsider prioritization in the future. Thank you!

Regards,
Neli
Progress Telerik

Love the Telerik and Kendo UI products and believe more people should try them? Invite a fellow developer to become a Progress customer and each of you can get a $50 Amazon gift voucher.

ADMIN
Misho
Posted on: 18 Mar 2021 12:53

Hello,

Thank you for bringing this issue to our attention. We've reviewed it and could confirm this is a valid bug report so I've modified its status to Unplanned in our Public Feedback portal: https://feedback.telerik.com/aspnet-core-ui/1510698-bug-memory-leak-when-using-todatasourceresult-with-entity-framework-core-2

This way other people could also see it and vote for raising its priority.
Based on the demand from the community we could plan and implement it in our future releases.

Best Regards,
Misho
Progress Telerik

Virtual Classroom, the free self-paced technical training that gets you up to speed with Telerik and Kendo UI products quickly just got a fresh new look + new and improved content including a brand new Blazor course! Check it out at https://learn.telerik.com/.