質問: @0", "blah"); }//item is a Entity Complex Type ``` エラー > ソースタイプ 'ClassLibrary1.Model.bhcs_ObsData_2_Result'のクエリパターンの実装が見つかりませんでした。 「選択」が見つかりません。 > > 実行時にPropertyNameを指定する必要があるという事実を考えると、匿名型またはDTOで投影する方法はありません。 この時点ではエンティティ機能を保持する必要はありません。データが必要です。クエリ可能なものにデータをコピーすることは有効なソリューションです。では、動的LINQを使用してエンティティフレームワークにクエリを実行することは可能ですか? そして、これがエンティティークラスヘッダーです(私がクエリしようとしているもの、別名アイテムオブジェクト) ``` [EdmComplexTypeAttribute(NamespaceName="MyDbModel", Name="blah_myQuery_2_Result")] [DataContractAttribute(IsReference=true)] [Serializable()] public partial class blah_myQuery_2_Result : ComplexObject { ```
回答: まず最初に、System.Linq.Dynamicが本格的なMicrosoft製品ではないことを明確にしておこう。これはほんの少し前にリリースしたサンプルであり、さまざまなLINQ実装を完全にテストして正しく動作しません。 EF ObjectContext APIで完全にサポートされているテキストベースのクエリ言語を探している場合は、代わりにエンティティSQLを確認する必要があります。 それ以外に、System.Linq.Dynamicを使用したい場合で、アプリケーションの動作を妨げるようなものにぶつからないことを自分でテストして問題がない場合は、私が手助けできるかどうか試してみます。コードスニペットのすべてを理解できているかどうかわからないため、追加情報が必要になります。 最初に私が理解したいのは、最初の例では「データ」とは何で、どこから来たのですか? 2番目のスニペットでは、「rawQuery」とは何で、どこから来たのですか? Besdies、rawQuery.DataResultListとは何ですか?rawQuery.ObsDataResultListとは何ですか? また、2番目のスニペットに関しては、実際にはクエリタイプではないオブジェクト上でクエリ演算子を使用して作成しようとしているようです(ただし、AsQueryableコンパイラーを呼び出している場合に発生するエラーについては説明していません)その前に、bhcs_ObsData_2_ResultがIEnumerableでも非ジェネリックIEnumerableでもないという不満があったはずです)。 あなたの提案された答えでは、あなたはObjectResultを試してみて、それが助けになりそうだと言っています。 ObjectResultはクエリオブジェクトではないため、サーバーに送信されるクエリを作成できないことに注意してください。つまり、ObjectResultに適用するクエリ演算子はメモリ内で評価され、これを覚えていない場合は、フィルタリングを適用する前に、そのテーブルのすべてのデータをメモリに取り込むことになります。