在linq查询中将字符串转换为int

时间:2012-12-08 07:48:24

标签: linq linq-to-entities

这是查询

db.setupBrands.Where(x => 
    Convert.ToInt32(x.SortKey) <= id && 
    Convert.ToInt32(x.SortKey) >= desID)
.Select(x => x);

这里SortKey是我希望转换为int的字符串类型。在Convert.ToInt32()上,我收到以下错误。

  

LINQ to Entities无法识别方法'Int32 ToInt32(System.String)'方法,并且此方法无法转换为商店表达式。

1 个答案:

答案 0 :(得分:2)

EF无法翻译Convert和Parse。我完全赞同上述内容,但是,如果您的SortKey为nchar(4),您可以尝试:

string s_id = string.Format("{0:0000}", id);
string s_desID = string.Format("{0:0000}", desID );

db.setupBrands.Where(x => 
    x.SortKey <= s_id && 
    x.SortKey >= s_desID)
.Select(x => x);