为啥不能使用 SqlFunctions 在 LinQ 中将 int 转换为字符串?
Posted
技术标签:
【中文标题】为啥不能使用 SqlFunctions 在 LinQ 中将 int 转换为字符串?【英文标题】:Why can't cast int to string in LinQ using SqlFunctions?为什么不能使用 SqlFunctions 在 LinQ 中将 int 转换为字符串? 【发布时间】:2013-12-04 09:49:42 【问题描述】:为什么Linq
不起作用?
Groups.Where(x => SqlFunctions.StringConvert((double?)x.Code)
.Trim().StartsWith(txtSearch.Text))
.ToList();
错误
The specified method 'System.String StringConvert(System.Nullable`1[System.Double])' on the type 'System.Data.Entity.SqlServer.SqlFunctions' cannot be translated into a LINQ to Entities store expression.
我正在使用 EF6/SQL CE/C#
代码是一个 int 字段
【问题讨论】:
你能说得更具体点吗?什么是异常/错误? 你得到的错误异常/编译器错误是什么? 什么是 Groups 和它的 Code 属性? Code 是一个 Int 字段,Groups 是一个实体列表 【参考方案1】:你应该使用SqlceFunctions
而不是SqlFunctions
所以你的代码应该是
Groups.Where(x => SqlCeFunctions.StringConvert ((double?) x.Code)
.TrimStart() .StartsWith(txtSearch.Text))
.ToList();
命名空间:System.Data.Entity.SqlServerCompact;
【讨论】:
以上是关于为啥不能使用 SqlFunctions 在 LinQ 中将 int 转换为字符串?的主要内容,如果未能解决你的问题,请参考以下文章
EF Core 中的 SqlFunctions.DatePart 等效项