2009-07-22 69 views
4

我想在我的項目中使用亞音速3.0 SimpleRepository,但有一個問題:使用亞音速3.0 SimpleRepository到現有的數據庫

如果我的表的名稱,如產品等等。然後我不能得到任何數據從數據庫中, ,因爲亞音速生成SQL語句像「Select * from Products ...

PS:我不想改變我的表名稱。

我寫了一個t4模板來解決這個問題,希望有人可以看看我的 的代碼,並告訴我我做對了嗎?

代碼:SimpleRepositoryDemo

回答

3

這聽起來像你已經有設計在這種情況下我會建議你使用LinqTemplates或ActiveRecord的,而不是一個數據庫。 SimpleRepository似乎確實適合首先開發代碼的過程,而不是數據庫。

+0

是的,這是一個現有項目。 但是,如果我使用LinqTemplates或ActiveRecord,我必須將我的實體轉換爲亞音速生成的實體,然後再向數據庫插入新記錄 – NEE 2009-07-23 03:26:43

+0

是的,如果您使用了LinqTemplates,我希望您可以用現有的實體替換生成的,將任何需要的現有功能移到部分類中。 – 2009-07-23 12:22:50

3

因此,它聽起來像你有一個現有的數據庫模式和現有的實體模型(也稱爲存儲庫),你想要一個ORM推送/從你的數據庫和你的應用程序拉數據。

不幸的是,SubSonic並不適合這種情況。 SubSonic將從您的數據庫模式創建您的實體模型,或者它將從您的實體模型創建您的數據庫模式。但它不會從一個映射到另一個映射,因爲它的設計理念是「約定優於配置」。 SubSonic很簡單,這就是它的優勢,但簡單卻是一個代價。

這個場景需要的是NHibernate。它的設計具有很多可配置性。請參閱http://nhforge.org/Default.aspx