次のコード行を使用して、「ActivityEntity」タイプのオブジェクトのみを返すクエリを作成できます。
var q = CreateObjectSet<EntityBase>("EntityBases").OfType<ActivityEntity>()
..そしてクエリの実行は期待どおりに機能します。しかし、私は実際にエンティティSQL構文を使用してクエリを作成したいので、上記を次のコードに変換しようとしました...
string query = "SELECT it FROM OFTYPE(MyContext.EntityBases, MyNamespace.ActivityEntity) AS it";
var q = context.CreateQuery<DbDataRecord>(query.ToString(), new ObjectParameter[] { });
...これを除いて、次のエラーが発生します...
タイプ'MyNamespace.ActivityEntity'が見つかりませんでした。必要なスキーマがロードされ、名前空間が正しくインポートされていることを確認してください。
...両方のコードセットが同じC#ファイル内にあるため、強く型付けされたバージョンのコードは問題なく機能するため、名前空間に問題が発生することはありません。この問題を解決するためのアイデアはありますか?
ノート:
これが違いを生むかどうかはわかりませんが、Entity Frameworkはコード生成戦略がNoneで設定されており、使用する独自のクラスを作成しました。しかし、私はそれらをEdmEntityTypeAttribute属性でマークしました。