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'模板。 –