當前,我們的DAL(數據訪問層)查詢數據庫,我們遍歷結果數據以填充最終結果爲List的對象(每行一個對象)。C#從數據庫填充對象
什麼是最有效(最快)的方式來填充對象?
哪種方法可以將數據從數據庫中取出並導入爲該結果集設計的特定對象?
這是C#
- 編輯
以最快的,我們指的是速度最快的計算機來處理,而不是發展速度。
這也是一個.NET 2.0的應用程序
-
當前,我們的DAL(數據訪問層)查詢數據庫,我們遍歷結果數據以填充最終結果爲List的對象(每行一個對象)。C#從數據庫填充對象
什麼是最有效(最快)的方式來填充對象?
哪種方法可以將數據從數據庫中取出並導入爲該結果集設計的特定對象?
這是C#
- 編輯
以最快的,我們指的是速度最快的計算機來處理,而不是發展速度。
這也是一個.NET 2.0的應用程序
-
有很多方法可以做到這一點,取決於哪個版本的使用C#。
您可以使用以下方法:
1.數據集(.NET 2.0以上,我認爲?)
2. LINQ2SQL(以上.NET 3.5)
3的EntityFramework(以上.NET 3.5)
例如使用LINQ2SQL的:
var result = (from t in YourTable
select t).ToList();
我相信最快的(如在最快的發展)是LINQ to SQL。
它確實如此。創建表示每個表的屬性列表的類。訪問它們時,它會自動從數據庫中檢索數據,並使用數據填充這些對象,然後將其用作對象列表。這全部是自動的。您只需編寫代碼的一個單獨的行,這一點,你所做的映射後(拖表從數據庫中的LINQ到SQL的映射)
的代碼可以看看這樣簡單:
List<Something> yourList = YourAutomaticallyGeneratedDataContext.Something.ToList();
對於Firebird,當然,LINQ to SQL將不起作用。改用實體框架。在我看來,NHibernate太麻煩了。
不過既然你想最快的處理,我建議你看看這個網站:http://ormbattle.net/ 選擇你的武器,然後射擊。我不考慮DataReader的選項。這是一種痛苦,並可能導致錯誤。這也很難保持。
感謝亞歷山大,但項目的目標是編寫.NET 2.0 – Horges 2010-11-05 11:42:52
。查看最後一行。這是對SO的一個問題的參考,可以幫助你。 – AlexanderMP 2010-11-05 11:46:07
最有效的是你如何使用,只能向前SqlDataReader的http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqldatareader.aspx
需要大量的「樣板」代碼但這樣不是最快的寫做。我個人使用NHiberate,但這需要一些學習http://nhforge.org/Default.aspx
請參閱此基準示例:http://www.devtoolshed.com/content/performance-benchmarks-linq-vs-sqldatareader-dataset-linq-compiled-queries-part-2 – 2010-11-05 11:44:07
您使用的是什麼RDBMS? SQL-服務器?甲骨文?其他? – 2010-11-05 11:35:54
目前,Firebird – Horges 2010-11-05 11:36:51
爲什麼不使用Linq-To-Sql,nHibernate或任何其他ORM工具? – 2010-11-05 11:37:22