質問: (ASP.net 3.5、C#、SQL Express 2008) ユーザーが入力したキーワードを使用して「ソリューション」(私のテーブル)を検索し、結果が返されてGridViewに値を設定した後のWebフォームが必要です。 この検索の一部は、Entity Data Modelに接続されているストアドプロシージャを介して既に行っています。このページにはEntityDataSourceがあります。 **このEntityDataSourceでストアドプロシージャからデータを取得する方法を教えてください。** Entityコンテキスト(うまくいく)を介して結果を取得し、それをグリッドにバインドすることができればいいのですが、それをEntityDataSourceにフックしなければ、自動ページングとソートはできません(これは別の方法です)。過去の私の闘争)
回答: `Function Import`を使ってみてください。 1. EntitySet Name(見出し部分)を右クリックします 2. 追加 - >機能インポートを選択します。 これはあなたがチェックアウトするのに良いブログ投稿です。 ADO.NET Entity Frameworkツール:ストアドプロシージャ、Guy Burstein著 **更新:** `EntityDataSource`に関する部分を見逃したので申し訳ありませんが、EDSから関数インポートにアクセスするために公開されているプロパティはわかりませんが、CommandTextプロパティを使用することはできます。 ``` ``` **更新:**ええ、それは私には悪い知らせがあるようです。 Reflectorを使用して`EntityDataSource`深く入り込んだ後。 `EntityDataSourceView`は`QueryBuilderUtils.ConstructQuery`を使用して`QueryBuilderUtils.ConstructQuery` 、次に`QueryBuilderUtils.ConstructQuery`が`context.CreateQuery`呼び出します。関数importを実行するために必要なのは`context.ExecuteFunction`への呼び出しです。このリリースではExecuteFunctionはサポートされていないようです。私が読んでいたブログでは計画されていると述べていましたが、将来のリリースでできるかどうかは関係ありません。言わないで。 それでも、ページング、ソートなどをサポートする方法で構築できる`ObjectDataSource`を使用することをお勧めします。このトピックについてObjectDataSourceの質問をした場合は、ここにコメントを送ってください。