Linq 相当于 SQL LEFT 函数?

2023-11-21

我们有一个数据库,其中一些字段为 varchar(max),可能包含大量文本,但是我遇到的情况是,我只想从字段中选择前 300 个字符,以用于 MVC 网站上的分页结果表进行该领域的“预览”。

对于一个简化的示例查询,我想在表中显示所有位置 (这将被分页,所以我不只是得到所有的东西 - 我一次可能得到 10 个结果):

return db.locations;

然而,这给了我一个位置对象,其中所有字段都包含大量文本,执行起来非常耗时。

所以我之前采取的方法是使用 SQL 存储过程:

LEFT(field, 300) 

要解决此问题,然后在 Linq to SQL .dbml 文件中包含存储过程以返回结果的“位置”对象。

但是我有很多查询,我不想为每个查询都执行此操作。

这可能是一个简单的解决方案,但我不确定如何在搜索引擎上表达这个问题,我将不胜感激任何可以帮助我解决这个问题的人。


您也可以使用直接转换为这些函数的函数,当您需要转换在 SQL 中功能正常且在 LINQ 中没有风险的代码时,这非常有用。 看一下System.Data.Objects.EntityFunctions

Locations.Select(loc=>System.Data.Objects.EntityFunctions.Left(loc.Field,300))

这将被直接翻译成LEFT在服务器端。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linq 相当于 SQL LEFT 函数? 的相关文章

随机推荐