1

我們的系統運行在多個服務器上。我們系統中的所有表格均使用GUID作爲Primary KeyForeign Key字段。然而,這是我們的舊系統,它正在經歷一個全新的重寫。Asp.Net MVC 4查看模型和域模型ID

在舊系統中使用GUID的動機是用於遷移數據。將項目從一臺服務器遷移到另一臺服務器是完全合理的。因此,使用int作爲ID會在數據遷移時遇到問題。

現在我們希望使用GUID作爲ids的新系統也是由於遷移因素。新系統將使用MVC 4的DDD編寫。我們還使用KendoUI進行UI控制。

KendoUI的東西看起來不支持GUID其網格爲Foreign Key s。使用它時,該列爲空白。

有人提到我的設計是錯誤的,不應該使用GUID作爲id。在View Model中使用GUID真的是錯誤的嗎?在View ModelDomain Modelint中使用GUID確實很困難。

在遷移的情況下,跨多個服務器的Ids很重要的系統中使用的更好的數據類型是什麼?

或者數據遷移是一個單獨的問題,我應該使用API​​和域服務來遷移數據,在這種情況下使用int作爲id是完全合理的。

請問有人能指點我正確的方向嗎?

+1

爲什麼不只是讓你的視圖模型把你的GUID看作一個字符串,然後在持久化時把它轉換回GUID呢? – Marco

+0

我試過了,它沒有與KendoUI一起使用。那麼'GUID'是更好的方法呢? –

+0

您使用的pk取決於您以及您的系統需求。爲什麼不聯繫Telerik並詢問他們有關GUID的問題? – Marco

回答

1

你是對的,想要使用GUID作爲ID。如果您的UI工具不支持GUID ID,請使用其他工具。我想說,使用供應商特定的UI工具與ASP.NET MVC的精神背道而馳。你應該能夠找到自由和開源的東西,它可以滿足你的需求。

在任何情況下,爲了您的UI控件,都不應將GUID ID映射到int ID。那隻會導致巨大的痛苦。

+1

我們發現了一種新的工具。回到基本的'TwitterBootstrap MVC'和一個漂亮的'FLATY'模板。 –