C# Linq到SQL未填入整数参数
我正在使用Linq to SQL查询一个表,代码如下:C# Linq到SQL未填入整数参数,c#,sql-server,linq,C#,Sql Server,Linq,我正在使用Linq to SQL查询一个表,代码如下: else if (int.TryParse(searchstring, out isID)) { var events = from e in db.ov_Events where e.Event_Id == isID select e; success = true; error = ""; return events.ToList();
else if (int.TryParse(searchstring, out isID))
{
var events = from e in db.ov_Events
where e.Event_Id == isID
select e;
success = true;
error = "";
return events.ToList();
}
这段代码执行以下查询:
SELECT [t0].[Event_Id], [t0].[Event_Name]...
FROM [dbo].[ov_Events] AS [t0]
WHERE [t0].[Event_Id] = @p0
然后从数据库“必须声明标量变量@p0”返回一个错误
我不明白为什么linq不向服务器提供变量(SQL server Express 2014)
我甚至尝试过以下方法:
var events = from e in db.ov_Events
where e.Event_Id == 1
select e;
这仍然运行相同的精确查询,不确定我哪里出错了
完整代码如下:
using (DB_v1DataContext db = new DB_v1DataContext(Con)) {
int isID;
try {
if (searchstring == "") {
var events = from e in db.ov_Events
select e;
success = true;
error = "";
return events.ToList();
} else if (int.TryParse(searchstring, out isID)) {
var events = from e in db.ov_Events
where e.Event_Id == isID
select e;
success = true;
error = "";
return events.ToList();
} else {
var events = from e in db.ov_Events
where e.Event_Name.Contains(searchstring)
|| e.Event_Notes.Contains(searchstring)
select e;
success = true;
error = "";
return events.ToList();
}
} catch (Exception ex) {
success = false;
error = "Error Getting Events:" + ex.Message;
return null;
}
}
这看起来像是linq2sql中的一个bug。看看是否可以让它在没有任何条件的情况下进入一个孤立的场景,并提交一个bug报告。也许这将有助于这看起来像linq2sql中的bug。看看你是否能让它在没有任何条件的情况下进入一个孤立的场景,并提交一份bug报告。也许这会有所帮助