首页 > 解决方案 > EF Core 生成错误 SQL

问题描述

我正在编写一个通用的存储库方法,如下所示:

public IEnumerable<T> GetEntities<T>(Func<T, bool> condition) 
{
     return _dbContext.Set<T>().AsQueryable<T>().Where(condition).ToList();
}

在一些 BLL 类上,我尝试使用这样的方法:

var specificUsersNames = .. // List<string> of names
var users = _usersRepo.GetEntities<User>(x => specificUserNames.Contains(x.Name));

在控制台中查看日志后,生成的 SQL 如下:

SELECT [u].[Id], [u].[Name], [u].[PhoneNr], [u].[Address]
FROM [User] AS [u]

我尝试过使用Any而不是,Contains但我得到了相同的结果。

它正在获取所有行,但是在调试时,它只显示正确的行。

知道为什么我会得到这个生成的 SQL 吗?

标签: sqlentity-frameworkentity-framework-core

解决方案


推荐阅读