没有获得有关此错误的更多信息,但我没有在此特定代码中使用任何投射,所以我很迷茫。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