我在ado.net实体框架中的实体中遇到了一些问题.基本上我正在做的是:
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提供程序,或以某种方式拦截命令树或生成的查询?