【问题标题】:Asp.Net MVC 4 view model and domain model idsAsp.Net MVC 4 视图模型和域模型 ID
【发布时间】:2015-06-03 00:43:51
【问题描述】:

我们的系统在多台服务器上运行。我们系统中的所有表都使用GUID 作为Primary KeyForeign Key 字段。然而,这是我们的旧系统,它正在经历全新的重写。

在旧系统中使用GUID 的动机是为了迁移数据。将项目从一台服务器迁移到另一台服务器是完全合理的。因此,当数据迁移时,使用int 作为 id 会出现问题。

由于迁移因素,现在我们希望使用GUID 作为 id 的新系统。新系统将使用 DDD 和 MVC 4 编写。此外,我们使用 KendoUI 进行 UI 控件。

从外观上看,KendoUI 不支持GUID int 它的网格为Foreign Keys。使用时该栏为空白。

有人提到我的设计是错误的,不应该使用GUID作为id。在View Model 中使用GUID 真的错了吗?在Domain ModelintView Model 中使用GUID 真的很难。

在迁移的情况下,在 Id 跨多个服务器很重要的系统中使用哪种数据类型更好。

或者数据迁移是一个单独的问题,我应该使用 API 和域服务来迁移数据,在这种情况下使用 int 作为 id 是完全合理的。

有人能指点我正确的方向吗?

【问题讨论】:

  • 为什么不让您的视图模型将您的 GUID 视为字符串,然后在持久化时将其转换回 GUID?
  • 我试过了,但它不适用于 KendoUI。那么GUID 是不是更好的方法呢?
  • 你使用什么作为你的pk取决于你和你的系统需要什么。为什么不联系 Telerik 并询问他们您在使用 GUID 时遇到的问题?
  • 井格是付费订阅的一部分。所以需要领证。我的试用期结束了。只是不想为不能正常工作的东西买单

标签: c# asp.net-mvc-4 design-patterns domain-driven-design viewmodel


【解决方案1】:

您想使用 GUID 作为 ID 是对的。如果您的 UI 工具不支持 GUID id,请使用其他工具。我想说的是,使用特定于供应商的 UI 工具无论如何都与 ASP.NET MVC 的精神背道而驰。您应该能够找到可以满足您需要的免费和开源的东西。

在任何情况下,您都不应该为了您的 UI 控件而将 GUID id 映射到 int id。那只会导致巨大的痛苦。

【讨论】:

  • 我们找到了一个可以使用的新工具。回到基本的TwitterBootstrap MVC,使用漂亮的“FLATY”模板。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-10-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-18
  • 2010-11-24
相关资源
最近更新 更多