0

Enitity SQL を使用してデータをクエリしようとしていますが、edmx ファイルが別のプロジェクトにある場合、例外がスローされます。以下は私のテスト手順です。

  1. クラス ライブラリ プロジェクトを作成し、それに edmx ファイルを追加して、データベースから作成します。

  2. コンソール アプリケーションを作成し、参照するクラス ライブラリ プロジェクトを追加して、app.config ファイルをこのプロジェクトにコピーします。

  3. 以下のようにコードを書きます

    using (NorthwindEntities context = new NorthwindEntities())
    {
        string queryString = @"SELECT VALUE cus 
                               FROM NorthwindEntities.Customers AS cus 
                               WHERE cus.ID > 10";
        ObjectQuery<Customers> cusQuery = 
            context.CreateQuery<Customers>(queryString);
        List<Customers> cusList = cusQuery.ToList();
    }
    

コンソール アプリケーション プロジェクトを実行すると、「'ID' は、現在読み込まれているスキーマのタイプ 'NorthwindModel.Customers' のメンバーではありません。

スキーマがプロジェクトに読み込まれていないようですが、アイデアはありますか? 追加の質問: このクエリでは、このタイプのすべてのプロパティを選択します。一部のプロパティのみを選択した場合、ObjectQuery の匿名タイプを返すにはどうすればよいですか?

任意の提案をいただければ幸いです。

4

1 に答える 1

0

これは EF の問題ではありません。

SQL ステートメントを手動で記述したため、EDMX ファイルにあるテーブル定義を使用していません。

SQL Server のクエリ プロンプトで SQL ステートメントを実行しようとすると、そこでも失敗することがわかります。

次のようなことを試してください:

var cus = from customers in context.Customers select customers;
var cusList = cus.ToList();
于 2012-06-23T09:55:39.073 に答える