【发布时间】:2015-06-03 00:43:51
【问题描述】:
我们的系统在多台服务器上运行。我们系统中的所有表都使用GUID 作为Primary Key 和Foreign Key 字段。然而,这是我们的旧系统,它正在经历全新的重写。
在旧系统中使用GUID 的动机是为了迁移数据。将项目从一台服务器迁移到另一台服务器是完全合理的。因此,当数据迁移时,使用int 作为 id 会出现问题。
由于迁移因素,现在我们希望使用GUID 作为 id 的新系统。新系统将使用 DDD 和 MVC 4 编写。此外,我们使用 KendoUI 进行 UI 控件。
从外观上看,KendoUI 不支持GUID int 它的网格为Foreign Keys。使用时该栏为空白。
有人提到我的设计是错误的,不应该使用GUID作为id。在View Model 中使用GUID 真的错了吗?在Domain Model 和int 在View Model 中使用GUID 真的很难。
在迁移的情况下,在 Id 跨多个服务器很重要的系统中使用哪种数据类型更好。
或者数据迁移是一个单独的问题,我应该使用 API 和域服务来迁移数据,在这种情况下使用 int 作为 id 是完全合理的。
有人能指点我正确的方向吗?
【问题讨论】:
-
为什么不让您的视图模型将您的 GUID 视为字符串,然后在持久化时将其转换回 GUID?
-
我试过了,但它不适用于 KendoUI。那么
GUID是不是更好的方法呢? -
你使用什么作为你的pk取决于你和你的系统需要什么。为什么不联系 Telerik 并询问他们您在使用 GUID 时遇到的问题?
-
井格是付费订阅的一部分。所以需要领证。我的试用期结束了。只是不想为不能正常工作的东西买单
标签: c# asp.net-mvc-4 design-patterns domain-driven-design viewmodel