2009-09-24 60 views
1

我有一個使用多個DataGridView的WinForm應用程序。 DGV曾經被綁定到舊的SProc的DAL中的DataTables。當我將SProcs轉換爲LINQ時,我原本是在關注套件,但我想知道這是否是「最佳」方式。我應該從LINQ返回DataGridView的SQL

這是我正在做的一個樣本。

 internal static CmoDataContext context = new CmoDataContext(); 

     public static DataTable GetAllMembers(Guid workerID) 
    { 
     DataTable dataTable; 
     using (context) 
     { 
      var AllEnrollees = from enrollment in context.tblCMOEnrollments 
           where enrollment.CMOSocialWorkerID == workerID || enrollment.CMONurseID == workerID 
           select 
            new 
             { 
              enrollment.ADRCReferralID, 
              enrollment.ClientID, 
              enrollment.CMONurseID, 
              enrollment.CMOSocialWorkerID, 
              enrollment.DisenrollmentDate, 
              enrollment.DisenrollmentReasonID, 
              enrollment.EconomicSupportWorkerID, 
              enrollment.EnrollmentDate 
             }; 

      dataTable = AllEnrollees.CopyLinqToDataTable(); 
     } 
     return dataTable; 
    } 

CopyLinqToDataTable()是一個自定義類,很顯然,一個IEnumerable<T>轉換成一個DataTable。

這樣做有什麼問題嗎?我應該使用IQueryable嗎?

謝謝

回答

2

我沒有看到你這樣做的方式有什麼問題。從IEnumberale列表轉換爲DataTable。如果你正在研究一個框架,你應該能夠改變內部工作,而不用任何方法來調用它。

你可以編寫你的Linq查詢來返回一個數據表而不是列表,但我認爲它不會爲處理時間節省你的時間。

就這樣你知道一個DataGrid可以綁定到一個List,所以如果你想把它綁定到List的努力,我會這樣做。但是,如果你沒有時間,或者超出了範圍,我認爲等到晚些時候沒有任何問題。

+0

+1 yea,我只是將我的DGV綁定到IList <> – dotjoe 2009-09-24 13:57:47

+0

DataGridView不會通過IListSource接口直接綁定到Linq to SQL圖嗎? – Lazarus 2009-09-24 14:02:29