0

このウォークスルーに従って、wcf+ef+self-tracking エンティティ プロジェクトを作成しました。

チュートリアル: 自己追跡エンティティをシリアル化する

サービスでは、Linq to Entities はうまく機能しますが、ESQL を使用するメソッドを追加すると、たとえば次のようになります。

public string Test()
    {
        string Name = "";

        string sql = "select  d.Name,d.Budget from SchoolEntities.Departments";
        using (SchoolEntities db = new SchoolEntities())
        {
            var query = db.CreateQuery<Department>(sql);
            if (query != null)
            {
                foreach (var v in query)
                {
                    Name = v.Name;               
                }
            }
        }
        return Name;
    }

コードの実行時に例外がスローされます。

'd.Name' は、現在のスコープまたはコンテキストで解決できませんでした。参照されるすべての変数がスコープ内にあること、必要なスキーマがロードされていること、名前空間が正しく参照されていることを確認してください。

誰でも助けることができますか?

4

1 に答える 1

0

問題は間違った ESQL クエリにあると思います。あなたは何が何であるかを宣言しませんでしたd:

string sql = "SELECT d.Name, d.Budget FROM SchoolEntities.Departments AS d";

また、部門にマップされたすべてのフィールドを選択していることを確認してください。

于 2012-06-19T08:40:24.440 に答える