1

在创建具有外键值的新实体对象时,我需要为该对象创建一个新的实体键(.net 3.5 中的实体框架),但我无法决定我应该在应用程序中的哪个位置执行此操作。

现在,当我使用外键创建新记录时,我在控制器中创建实体键(在本例中是从成员资格提供程序中提取的用户 ID),将其分配给对象并将其传递给存储库服务层。

这有什么问题,还是我应该将对象和用户 ID 传递给存储库服务层并让它处理实体密钥的创建?传递一个对象似乎更干净,但是让多个控制器以这种方式分配键让我感到紧张。谢谢。

4

1 回答 1

4

我认为这是一个关注点分离的问题。存储库涉及检索和添加/更改/删除实体。它不应该负责构建实体。相反,控制器实际上也不应该负责构建实体(控制器应该承担将数据推送到视图所需的基本工作量,并处理来自视图的命令,将这些命令委托给业务逻辑......业务逻辑属于其他地方(如域)。)老实说,您应该创建某种 EntityBuilder 来处理创建实体的过程。您将对象和用户 ID 传递给构建器,然后构建器将为您提供一个完全构建的实体,然后可以将其传递到存储库。

编辑:

即使您从“存储库”更改为“服务层”,主体仍然保持不变。将构建实体的过程委托给专门的构建器,并保持关注点分离。

于 2009-08-27T16:51:32.410 回答