2012-03-09 9 views
1

私は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>

答えて

1

ことを期待していたので、私はIQueryable<T>ToList()をキャスト。

リストをバインドする前に、汎用オブジェクトTのタイプはどこで指定していますか。

+0

ありがとう、それはちょうど慣例です。すべての私のリポジトリエンティティに共通するメソッドについては、私はTを使います。エンティティ固有のメソッドについては、クラスを指定します – CiccioMiami

関連する問題