代码
var rows = (
from product in products
select new
{
i= product.fid.ToString(),
cell = new string[] {
product.fid.ToString(),
product.fcode,
product.fno,
product.fspec
}
}).ToArray();
编译时不出错,运行时出错
报错: LINQ to Entities 不识别方法“System.String ToString()”,因此该方法无法转换为存储表达式。
要怎么解决啊?
var rows = (
from product in products
select new
{
i= product.fid.ToString(),
cell = new string[] {
product.fid.ToString(),
product.fcode,
product.fno,
product.fspec
}
}).ToArray();
编译时不出错,运行时出错
报错: LINQ to Entities 不识别方法“System.String ToString()”,因此该方法无法转换为存储表达式。
要怎么解决啊?
select(product => new{
product = n.fid,
cell=new string[]
{
n.fid.ToString(),
n.fcode,
n.fno,
n.fspec
}
}
).ToArray();
from product in products
select new
{
i= product.fid, //.ToString(),
cell = new string[] {
product.fid, //.ToString(),
product.fcode,
product.fno,
product.fspec
}
}).ToArray();
fid这个字段是一个int型的字段
所以
cell = new string[] {
product.fid, //.ToString(), ==>不转换成string,会报错的
product.fcode,
product.fno,
product.fspec
}
无法将类型“System.Int64”强制转换为类型“System.Object”。LINQ to Entities 仅支持强制转换 EDM 基元或枚举类型。
顶,前段时间开发大量使用了linq,确实如此,linq好象只支持可以在CLR里面可以执行的方法。另外,对hjywyj的写法很感兴趣,个人觉得说不定能成。可惜我开发的时候,没想到这个
hjywyj的写法,不行啊
如果你是用SQL的话,可以试试SqlFunctions.StringConvert
http://msdn.microsoft.com/en-us/library/dd466301.aspx
from product in products
select new
{
i=SqlFunctions.StringConvert( product.fid),
cell = new string[] {
SqlFunctions.StringConvert(product.fid), ==>这样子,编译报错啊
product.fcode,
product.fno,
product.fspec
}
}).ToArray();