我在這裏遇到了一些難題,我希望你們中的一些人能夠幫助填充空白。ASP.NET MVC(MVC2)在使用Linq到SQL和存儲庫層插入/更新數據時的最佳實踐
我目前面臨的情況是關於我的「用戶」表和我的「OpenID」表。我的應用程序允許用戶擁有多個OpenID,因此我將它們保存在一個單獨的表格中。
用戶
ID
用戶名的OpenID
ID
用戶ID
Claimedidentifier
我有一個CRUD儲存庫中的每個表,並且我還有一個與Repository連接的服務(每個回購服務一個服務)。
我的問題是關於插入新用戶(因爲更新將遵循相同的主體)。這是我腦海中的選擇。
- 有UserService添加一個新用戶,獲取用戶的ID,然後使用用戶名
- 有UserService發送新用戶與ClaimedIdentifier到UserRepository沿插入一個新的OpenID,並有庫插入用戶和OpenID(這不太適合CRUD方法)
- 創建User表和OpenID表的視圖,創建UsersOpenIDRepository和UsersOpenIDService,然後插入到View中。
超出我能想到的任何其他想法或建議將不勝感激。
請注意,我不使用NHibernate,因此我可以建模我的域名,但我認爲合適。我在這個項目上堅持Linq to SQL,
因此,在這種插入方式下兩次命中數據庫並非世界末日?我很擔心有太多的數據庫命中。此外,我並沒有完全賣給EF,NHibernate或者其他類似的東西......這只是一條學習曲線。 – 2010-06-23 22:10:19
它當然不是世界末日。如果我沒有弄錯,Linq2SQL將這種插入翻譯成兩個插入,並且一個選擇從數據庫中獲取ID。關於EF:我也沒有賣。花費1周評估EF之後。 Linq2SQL非常容易使用。如果只是它不是一個垂死的技術。 – 2010-06-24 10:23:29