【发布时间】:2023-03-14 17:33:02
【问题描述】:
我有以下代码。
var category = Office.Categories.FirstOrDefault(c => c.Description == name);
Office 是之前读取的框架实体对象。
即使我的数据库使用不区分大小写的字符串比较,并且其中一项完全匹配,除了大小写之外,此代码仍返回 null。
我对这里发生的事情的理解是 Office.Categories 正在返回所有相关的行,然后这些行正在由区分大小写的常规 LINQ 搜索。
如果是这样,那效率太低了,因为我只想返回符合我的条件的行。
谁能证实我对此的理解?是否可以强制在 SQL 中进行过滤,这样我就不需要返回我不感兴趣的行? (而且文本比较会不区分大小写?)
感谢您的帮助。
【问题讨论】:
-
我们不可能仅从您发布的代码中知道是在 SQL 中还是在内存中进行评估。
-
好吧,我相信我已经确定它没有在 SQL 中进行评估。如果有问题,我可以提供更多信息。但我真的想在这里找出规则来确定它是否在 SQL 中进行评估,以及是否有办法覆盖它。
标签: c# .net linq entity-framework