私のクエリのSELECT文に問題があります。このSQLクエリはSqlServer Management Studioで動作し、要求されたデータを選択しますが、私のクラスでは「クエリ構文が無効です。近頃 '*'、9行目、47列目」というエラーが表示されます。 LastPostBy、LastPostDate、LastPostTitleを取り出した後の私のFrom F句の別のエラーLastPostTitleにもエラーが表示されますが、SQLServer Management Studioで動作しているようです。私は最初に "Exec sproc_Forums_GetForums"ストアドプロシージャを実行しようとしましたが、これは動作しませんでした。これはEntitiesでこのアプローチを使用する私の最初の試みです。 すべての私のクエリを行うこととしている。これは、有効なESQLクエリではありませんフォーラムを取得し、フォーラムや投稿という名前の2つのテーブルEntityCommand SQLエラー
public List<Forum> GetForums()
{
List<Forum> forums = null;
using (EntityConnection conn = new EntityConnection("name=CMSEntities"))
{
conn.Open();
string query = @"
SELECT ForumGroup = (
CASE WHEN ParentID IS NOT NULL THEN
(SELECT Title FROM Forums WHERE ForumID = F.ParentID)
ELSE
(SELECT Title FROM Forums WHERE ParentID IS NULL)
END),
F.Title, F.Description,
ThreadCount = (SELECT COUNT(*) FROM Posts P WHERE P.ForumID = F.ForumID),
LastPostBy = (SELECT TOP 1 AddedBy FROM Posts P WHERE P.ForumID = F.ForumID ORDER BY P.PostID DESC),
LastPostDate = (SELECT TOP 1 AddedDate FROM Posts P WHERE P.ForumID = F.ForumID ORDER BY P.PostID DESC),
LastPostTitle = (SELECT TOP 1 Title FROM Posts P WHERE P.ForumID = F.ForumID ORDER BY P.PostID DESC)
FROM Forums F WHERE ParentID IS NOT NULL
ORDER BY Title
";
EntityCommand cmd = new EntityCommand(query, conn);
using (EntityDataReader reader = cmd.ExecuteReader(System.Data.CommandBehavior.SequentialAccess))
{
while (reader.Read())
{
Forum forum = new Forum(
(int)reader["ForumID"],
"",
DateTime.Now,
reader["Title"].ToString(),
reader["Description"].ToString(),
0,
false,
null,
null,
null,
true,
reader["ForumGroup"].ToString(),
(int)reader["ThreadCount"],
reader["LastPostBy"].ToString(),
(DateTime)reader["LastPostDate"],
reader["LastPostTitle"].ToString());
forums.Add(forum);
}
return forums;
}
}
}
}
ここに提案があります.SQL Server Profilerを使用して、SQL Serverに送信される正確なクエリを確認します。 – Beatles1692
どのようにSQL Serverプロファイラを使用し、VS2010のどこにある – ONYX
あなたのSQL管理スタジオ、ツール - >プロファイラーを開きます:) –