本からEntity Framework 4を学んでいます。
そして、次のように Entity SQL を使用してクエリを作成しようとしています。
using (var context = new BAEntities())
{
string str = "SELECT VALUE c " +
"FROM BAEntities.Contacts " +
"AS c " +
"WHERE c IS NOT OF(BAModel.Customer)";
ObjectQuery<Contact> qry = context.CreateQuery<Contact>(str);
Console.WriteLine(qry.Count());
}
私のクエリの目的は、顧客タイプではなく、連絡先タイプのすべてのオブジェクトを取得することです。ここで、Customer は Contact から継承します
しかし、次のエラーが発生しました:
タイプ 'BAModel.Customer' が見つかりませんでした。必要なスキーマがロードされ、名前空間が正しくインポートされていることを確認してください。タイプ名の近く、1 行目、64 列目。
しかし、次のような LINQ to Entities でクエリを実行すると、次のようになります。
ObjectQuery<Contact> qry = context.Contacts.Where(c => !(c is Customer));
その後、プログラムは正しく実行できます。
BAModel.Customer
では、モデルが配置されている同じプロジェクト内でコードを実行したのに、Entity SQL が見つからないのはなぜですか。
これで私を助けてください。
前もって感謝します。