EntityFrameWork v5.0、EntityDataSource コントロールを使用しています。
コードで SQL クエリを設定しましたが、コンパイル後にページを開くと例外が発生します。どうすれば修正できますか?
コード:
entryListDs.CommandParameters.Add(new Parameter("subId", DbType.Int32, Common.CurrentUserID.ToString()));
entryListDs.CommandParameters.Add(new Parameter("typeId", DbType.Int32, ((int)MessageType.Wall).ToString()));
entryListDs.CommandText = @"SELECT
m.ID,
m.To,
m.Subject,
m.BodyHtml,
m.CreationDate,
m.New,
m.TypeID
FROM
message AS m
JOIN subscription AS s
ON m.From = s.ObjectID
WHERE s.SubscriberID = @subId and m.TypeID = @typeId
ORDER BY m.CreationDate DESC";
ページを開いたときの例外:
「From」は予約済みのキーワードであり、エスケープしない限り、エイリアスとして使用できません。12 行目、6 列目あたり。
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.Data.EntitySqlException: 'From' is a reserved keyword and cannot be used as an alias, unless it is escaped. Near line 12, column 6.
Source Error:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
Stack Trace:
[EntitySqlException: 'From' is a reserved keyword and cannot be used as an alias, unless it is escaped. Near line 12, column 6.]
System.Data.Common.EntitySql.CqlLexer.MapUnescapedIdentifier(String symbol) +8073331
System.Data.Common.EntitySql.CqlLexer.MapIdentifierOrKeyword(String symbol) +57
System.Data.Common.EntitySql.CqlLexer.Accept_83() +36
System.Data.Common.EntitySql.CqlLexer.yylex() +386
System.Data.Common.EntitySql.CqlParser.yylex() +16
System.Data.Common.EntitySql.CqlParser.yyparse() +132
System.Data.Common.EntitySql.CqlParser.internalParseEntryPoint() +101
System.Data.Common.EntitySql.CqlParser.Parse(String query) +148
System.Data.Common.EntitySql.CqlQuery.Parse(String commandText, ParserOptions parserOptions) +41
System.Data.Common.EntitySql.CqlQuery.CompileCommon(String commandText, Perspective perspective, ParserOptions parserOptions, Func`3 compilationFunction) +84
System.Data.Common.EntitySql.CqlQuery.CompileQueryCommandLambda(String queryCommandText, Perspective perspective, ParserOptions parserOptions, IEnumerable`1 parameters, IEnumerable`1 variables) +100
System.Data.Objects.EntitySqlQueryState.Parse() +8608663
System.Data.Objects.EntitySqlQueryState.GetResultType() +4
System.Data.Objects.ObjectQuery.GetResultType() +58
System.Web.UI.WebControls.EntityDataSourceQueryBuilder`1.BuildBasicQuery(ObjectContext context, Boolean computeCount) +108
System.Web.UI.WebControls.EntityDataSourceView.ExecuteSelectTyped(DataSourceSelectArguments arguments, Creator qbConstructor) +355
System.Web.UI.WebControls.EntityDataSourceView.ExecuteSelect(DataSourceSelectArguments arguments) +606
System.Web.UI.DataSourceView.Select(DataSourceSelectArguments arguments, DataSourceViewSelectCallback callback) +21
System.Web.UI.WebControls.DataBoundControl.PerformSelect() +138
System.Web.UI.WebControls.ListView.PerformSelect() +102
System.Web.UI.WebControls.BaseDataBoundControl.DataBind() +30
System.Web.UI.WebControls.BaseDataBoundControl.EnsureDataBound() +105
System.Web.UI.WebControls.ListView.CreateChildControls() +52
System.Web.UI.Control.EnsureChildControls() +83
System.Web.UI.Control.PreRenderRecursiveInternal() +42
System.Web.UI.Control.PreRenderRecursiveInternal() +168
System.Web.UI.Control.PreRenderRecursiveInternal() +168
System.Web.UI.Control.PreRenderRecursiveInternal() +168
System.Web.UI.Control.PreRenderRecursiveInternal() +168
System.Web.UI.Control.PreRenderRecursiveInternal() +168
System.Web.UI.Control.PreRenderRecursiveInternal() +168
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +974
Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.18033