【发布时间】:2013-10-02 22:03:48
【问题描述】:
我有以下代码:
using (DBContext context = new DBContext())
{
myCollection = context.Items.Where(i => i.Type == 1).OrderBy(k => k.Name).Select(w => new
{
Alias = w.Name + string.Format("{0}", w.Id),
Name = w.Name
}).ToArray();
}
在运行时我尝试连接字符串并尝试将整数 w.Id 转换为字符串时出现错误。
错误提示:
Linq to entity 无法识别方法 string.Format
也不支持加连接符号“+”。
我通过引入 AsEnumerable 解决了这个问题:
using (DBContext context = new DBContext())
{
myCollection = context.Items.AsEnumerable().Where(i => i.Type == 1).OrderBy(k => k.Name).Select(w => new
{
Alias = w.Name + string.Format("{0}", w.Id),
Name = w.Name
}).ToArray();
}
但我想知道这是否是最好的解决方案,或者还有其他更适合这样做的方法。想法?
【问题讨论】:
-
您使用的是哪个数据库?
-
我正在使用嵌入实体框架的 SQLCe (compact edition) 4.0。
-
所以,这里只有一个选择 - 将计算移到客户端 SQL CE 4 EF provider cannot translate this into SQL query
标签: c# linq entity-framework linq-to-entities