2009-06-09 82 views
0

我有一個應用程序,我必須寫這個應用程序將利用我們能夠作爲客戶端獲得的每家公司的數據庫。如何使用LINQ和ASP.NET MVC持久化與用戶關聯的數據庫?

不幸的是,所有公司數據庫的模式並不完全相同,儘管對於這個應用程序他們都有我需要的基本信息(即使他們的列名不同/在不同的表中)。

我來處理多個數據庫解決方案是創建像一個IRepository接口:

List<User> getUsers(); 
List<Account> getAccounts(); 
void UpdateAccount(Account account); 

我會寫這將實現這個接口的每個數據庫DAL類。本課程將使用適當的LINQ的datacontext爲它自己的數據庫:

alt text

在這裏你可以看到洛斯,家得寶和FrankLumber的文件夾。每個人都有一個實現IRepository的DAL類。

我的問題是,我應該在哪裏處理工廠方法的實例化,以便我可以爲每個登錄的用戶堅持一個新的DAL類實例,基於它們所屬的「公司」。

所以,如果一個lowes客戶登錄,它會調用RepositoryFactory傳遞給用戶並返回適當的DAL,然後我可以多態調用方法,因爲我知道他們將實現上述方法。

我新的ASP.NET MVC和MembershipProviders並可以使用他們在登錄後,我應該堅持怎樣的DAL的實例爲每個用戶一些提示。

回答

1

可以實例的實例DAL你控制器操作。如果您確實有很多操作,那麼您可以考慮在一些更好的地方創建DAL實例(如屬性)

您可以堅持在ASP.NET會話狀態或創建數據庫上下文在每次需要時再次使用(只要確保每次都關閉datacontext,最好使用datacontext上的'using'關鍵字)