我用他對實體框架執行SQL query
代碼:爲什麼我的SQL查詢不能通過實體框架工作?
using (var db = new VSServicesEntities())
{
const string selectCmd = @"if exists (Select top 1 IsUserOn From ServiceMembers Where ServiceCode={0} and Number={1})
Select isnull(IsUserOn,0) IsUserOn
From ServiceMembers Where ServiceCode={0} and Number={1}
else
Select Null IsUserOn";
var data = db.ServiceMembers.SqlQuery(selectCmd, "A", 091242535970).ToList();
if (data.Any())
{
var serviceMember = data.First().IsUserOn;
if (serviceMember.ToString() == "")
label1.Text = "";
else
label1.Text = (serviceMember.ToString() == "True" ? "On" : "Off");
}
}
,但它給了我一個例外:
必須聲明標量變量「@ServiceCode」。
但我給的價值ServiceCode= A
,有什麼問題?
編輯2:我編輯在上面我的查詢,但現在它給了我另一個異常:
數據讀取器與指定的「VSServicesModel.ServiceMember」不兼容。 「ServiceCode」類型的成員在數據讀取器中沒有對應的列,名稱相同
但是我的列名恰好是:ServiceCode
!!問題是什麼??
在字符串 – thepirat000
中使用「{0}」而不是「@ServiceCode」和「{1}」而不是「@Number」嘗試查看文檔http://msdn.microsoft.com /en-us/library/gg679117%28v=vs.113%29.aspx – luke2012