私はASP.NET Webフォームアプリケーションを持っています。徐々にWebフォームからMVCにアプリケーションを移行したいと思います。最初のステップは、すべてのクエリをコードの背後にあるリポジトリレイヤに移動することです。私はLINQ Entity Frameworkのリポジトリクラスとリポジトリのインターフェースを置く独立したプロジェクト(クラスライブラリ)を作成そうするためにはLINQ結果セットをDataSourceとしてASP.NETのグリッドビューに設定する方法
。このプロジェクトは、ASP.NET Webフォームによって参照されます。
インターフェイスによって公開されるメソッドは、常にIQueryable<T>
オブジェクトを返します(この問題では興味のないスカラー値を返します)。
結果セットをGridViewに送信する方法はありますか。私は、リポジトリのクラスで実装したとします
IQueryable<T> GetAll();
どのようにデータソースがGetAll()
あるのGridViewに伝えることができますか?このコードは正しいのですか、またはデータソースがLinqDataSourceのどこかに指定する必要がありますか?
IMyRepository dataRepository = new MyRepository();
myGridView.DataSource = MyRepository.GetAll().ToList();
myGridView.DataBind();
私はDataSourceはあなたがデータソースのタイプを指定する必要はありませんIEnumerable<T>
ありがとう、それはちょうど慣例です。すべての私のリポジトリエンティティに共通するメソッドについては、私はTを使います。エンティティ固有のメソッドについては、クラスを指定します – CiccioMiami