我对 ado.net 实体框架中的实体的 linq 有一些问题。基本上我正在做的是这样的:
var results = (from c in companies
where c.Name.StartsWith(letter)
select c);
这会被翻译成 SQL,如下所示:
WHERE (CAST(CHARINDEX(@p, [Extent1].[Name]) AS int)) = 1
这很好,但我的表有数百万条记录,所以运行速度非常慢。我需要它来生成是这样的:
WHERE Name LIKE @p + '%'
我搜索了高低,找不到任何解决方案,除了使用存储过程或使用实体 sql ...
有没有办法通过linq做到这一点?可能通过某种方式将 linq 扩展到实体 linq 提供程序,或者以某种方式拦截命令树或生成的查询?