我正在實施一個大學項目來測試實體框架4.0與NHibernate(最新版本)相比的性能。我正在構建一個簡單的事務處理系統來執行此測試。我的實體將是客戶,帳戶,訂單,產品等。在EntityFramework和NHibernate之間切換
我想創建兩個單獨的DAL;第一個DAL將是EntityFramework,而第二個將是NHibernate。然後,我將創建一個業務邏輯層(BLL),它引用一個DAL或另一個DAL,並使用它來測試。 BLL將包含像'insertNewOrder()','amendExistingOrder()'等方法。我希望我的BLL獨立於框架,因此我可以輕鬆地在每個DAL之間切換。
爲了實現這一點,我建議實現一個接口'IContext',它將由每個DAL實現。 'IContext'將包含每個實體的'get()'方法以及'Save()'方法。然後每個DAL將以他們自己特定的方式實現這些方法。 'get()'方法將返回一個IObjectSet,而不是一個ObjectSet。
我將使用T4模板從我的EDM創建POCO實體並將它們移動到單獨的項目中。然後每個DAL可以引用相同的一組POCO實體。
然後,我的BLL將創建一個IContext接口的實例,並在該接口上調用方法,而不是創建特定的上下文(ObjectContext或ISession)。
這聽起來像一個可行的解決方案嗎?我在這個主題上找到的任何文章都包括使用知識庫,這是一種我不完全瞭解的模式,並且如果可能的話,不想實施。我的重點是測試每個平臺,而不是構建一個架構正確的應用程序。在這裏看到,例如:
我已經部分地基於從「編程實體框架的第二版」,由朱莉婭·勒曼在章這一做法。我對新罕布什爾州和EF(特別是新罕布什爾州)都是新手,所以任何意見或建議,將不勝感激。謝謝。
退房http://ormbattle.net/。將您的結果與它比較可能會很有趣。他們還描述和討論了測試,這可以給你更多的想法:http://ormbattle.net/index.php/performance-tests.html – 2010-11-08 15:46:39