沒有獲得有關此錯誤的更多信息,但我沒有在此特定代碼中使用任何投射,所以我很迷茫。LINQ指定的演員無效
var dsn = Request.ServerVariables["HTTP_HOST"].Split('.').First();
using (var ctx = new SharedDataContext("switchcurrent"))
{
var dbDsn = ctx.SiteObjects.FirstOrDefault(s => s.DSN == dsn);
if (dbDsn == null)
{
Session["CurrentDsn"] = "SwitchCurrent";
}
else
{
Session["CurrentDsn"] = dbDsn.DSN;
Response.Redirect(String.Format("~/{0}", dbDsn.DefaultPage));
}
}
LINQ聲明是我得到錯誤的地方。如果語句返回null,代碼會繼續正常,但如果它與數據庫中的對象實際匹配,則會出現此錯誤。
EDIT(附加信息)
該錯誤消息是一個InvalidCastException 堆棧跟蹤:
at System.Data.Linq.SqlClient.SqlProvider.Execute(Expression query, QueryInfo queryInfo, IObjectReaderFactory factory, Object[] parentArgs, Object[] userArgs, ICompiledSubQuery[] subQueries, Object lastResult)at System.Data.Linq.SqlClient.SqlProvider.ExecuteAll(Expression query, QueryInfo[] queryInfos, IObjectReaderFactory factory, Object[] userArguments, ICompiledSubQuery[] subQueries) at System.Data.Linq.SqlClient.SqlProvider.System.Data.Linq.Provider.IProvider.Execute(Expression query)at System.Data.Linq.Table`1.System.Linq.IQueryProvider.Execute[TResult](Expression expression)at System.Linq.Queryable.FirstOrDefault[TSource](IQueryable`1 source, Expression`1 predicate) at WebApplication1.Default.SetCurrentDsn() in C:\Code\dir\Default.aspx.cs:line 163 at WebApplication1.Default.Page_Load(Object sender, EventArgs e) in C:\Code\dir\Default.aspx.cs:line 32 at System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) at System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) at System.Web.UI.Control.OnLoad(EventArgs e) at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
SiteObject.Dsn是一個字符串。 dsn也是如此。
基本上,如果它是'本地主機'(不在數據庫中)代碼通過,但如果它的匹配('pgande')這個錯誤被拋出。
什麼錯誤?這是運行時異常還是編譯器錯誤?如果它是運行時異常,請發佈有關此異常的信息,例如消息,異常類型和堆棧跟蹤(以及可能的內部異常)。如果是編譯錯誤,請顯示確切的錯誤信息en編譯器錯誤編號和確切的行。 – Steven 2012-08-14 14:26:28
什麼是SiteObjects.DSN的類型? – Dave 2012-08-14 14:26:29
DSN是什麼類型? – Jodrell 2012-08-14 14:27:32