代码之家  ›  专栏  ›  技术社区  ›  Graham Conzett

ASP.net MVC:在我的设计中,我应该在哪里创建/声明实体键?

  •  1
  • Graham Conzett  · 技术社区  · 17 年前

    当创建具有外键值的新实体对象时,我需要为该对象创建一个新的实体键(在.net 3.5中为entity Framework),但我很难决定在应用程序中的何处执行此操作。

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

    这有什么问题吗,或者我应该将对象和用户ID一起传递给 服务层,并让它处理实体密钥创建?传递一个对象看起来更干净,但让多个控制器以这种方式分配关键点让我感到紧张。谢谢

    1 回复  |  直到 17 年前
        1
  •  4
  •   jrista    17 年前

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