0

是否可以使用 LINQ 编写如下查询?给我错误

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

key = Request.QueryString["key"];

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

3 回答 3

3

试试这个:

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

var query = from p in db.VERSIONs where p.vr_key == key select p;
于 2013-03-16T04:35:36.170 回答
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;
}
于 2013-03-16T04:41:50.517 回答
-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;
于 2013-03-16T04:14:45.847 回答