【发布时间】:2011-08-19 11:19:51
【问题描述】:
我正在将一些东西从一个 mysql 服务器迁移到一个 sql 服务器,但我不知道如何使这段代码工作:
using (var context = new Context())
{
...
foreach (var item in collection)
{
IQueryable<entity> pages = from p in context.pages
where p.Serial == item.Key.ToString()
select p;
foreach (var page in pages)
{
DataManager.AddPageToDocument(page, item.Value);
}
}
Console.WriteLine("Done!");
Console.Read();
}
当它进入第二个foreach (var page in pages) 时,它会抛出一个异常:
LINQ to Entities 无法识别方法 'System.String ToString()' 方法,并且这个方法不能翻译成store 表达。
有人知道为什么会这样吗?
【问题讨论】:
-
这是一个过时的问题。更高版本的 EF 确实将
ToString转换为大多数数据类型的 SQL。