Asp.Net MVC 4视图模型和域模型ID

时间:2015-06-03 00:43:51

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

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

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

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

根据事物的外观,KendoUI不支持GUID的{​​{1}}个网格。使用它们时,该列为空白。

有人提到我的设计错误,不应使用Foreign Key作为ID。在GUID中使用GUID是否真的错了?在View Model中的GUIDDomain Model使用int非常困难。

在迁移情况下,Ids在多个服务器中很重要的系统中使用的数据类型是什么?

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

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

1 个答案:

答案 0 :(得分:1)

您想要将GUID用作ID是正确的。如果您的UI工具不支持GUID ID,请使用其他工具。我会说使用特定于供应商的UI工具无论如何都违背了ASP.NET MVC的精神。您应该能够找到满足您需求的免费开源软件。

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