LINQ查询不将String作为值

时间:2013-03-16 04:12:14

标签: c# asp.net .net linq

可以使用LINQ编写如下所示的查询吗?给我错误

  

“不能应用于double和string类型的操作数”

key = Request.QueryString["key"];

var query = from p in db.VERSIONs where p.vr_key == key select p;

3 个答案:

答案 0 :(得分:3)

试试这个:

Double key = Convert.ToDouble(Request.QueryString["key"]);

var query = from p in db.VERSIONs where p.vr_key == key select p;

答案 1 :(得分:3)

使用TryParse方法确保您的字符串兼容/可转换,因为查询字符串可以是任何内容。否则,用户只需输入密钥即可轻松破解您的代码。

double key;
if(Double.TryParse(Request.QueryString["key"], out key))
{
    var query = from p in db.VERSIONs 
                        where p.vr_key == key 
                        select p;
}

答案 2 :(得分:-1)

使用SqlFunctions.StringConvert转换p.vr_key

试试这个:

key = Request.QueryString["key"];

var query = from p in db.VERSIONs where SqlFunctions.StringConvert(p.vr_key) == key select p;