2012-03-09 46 views
1

我有一個ASP.NET Web窗體應用程序。我想逐漸將應用程序從Web Forms移到MVC。我正在採取的第一步是將所有來自代碼後面的查詢移回到Repository層。如何在ASP.NET的gridview中將LINQ結果集設置爲DataSource

爲了做到這一點,我創建一個單獨的項目(類庫),其中我將一個LINQ實體框架一個倉儲類庫接口。該項目然後由ASP.NET Web窗體引用。

該接口暴露的方法總是返回一個IQueryable<T>對象(除了那些返回的標量值對此問題不感興趣)。

如何將結果集發送到GridView?假設我在Repository類實現:

IQueryable<T> GetAll(); 

怎麼能告訴我的數據源是GetAll() GridView的?該代碼是否正確或者我應該指定某個地方的數據源是否爲LinqDataSource

IMyRepository dataRepository = new MyRepository(); 
myGridView.DataSource = MyRepository.GetAll().ToList(); 
myGridView.DataBind(); 

我投了IQueryable<T>ToList()因爲我預計數據源是IEnumerable<T>

回答

1

你並不需要指定數據源的類型。

我不確定,在綁定列表之前,您在哪裏指定了通用對象T的類型?

+0

謝謝,這只是一個約定。對於所有我的Repository實體通用的方法,我使用T.對於那些特定的實體,我指定了類 – CiccioMiami 2012-03-09 15:58:38

相關問題