9

我是 NopCommerce v2.4 的新手,想知道在哪里编写代码(通过在 admin 或 nop.web 部分创建新模型)

4

5 回答 5

20

我花了很多时间来深入研究这个问题的深度。我可以将解决方案总结如下:

  1. 创建实体类(例如 Entity.cs)

    路径:Nop/Core/Domain/Entity.cs

  2. 创建映射类(例如 EntityMap.cs)

    路径:Nop/Data/Mapping/EntityMap.cs

  3. 为 MVC 创建一个模型(例如 EntityModel.cs)

    路径: Nop/Admin/Models/EntityModel.cs 或 Nop/Web/Models/EntityModel.cs

  4. 为模型创建一个验证器(例如 EntityValidator.cs)

    路径: Nop/Admin/Validators/EntityValidator.cs 或 Nop/Web/Validators/EntityValidator.cs

  5. 在 AutoMapperStartupTask.cs 上为实体和模型创建映射配置

    路径:Nop/Admin/Infrastructure 或 Nop/Web/Infrastructure

  6. 在 MappingExtensions.cs 上应用模型和实体之间的映射

    路径 : Nop/Admin 或 Nop/Web

  7. 创建服务类和服务接口(例如 EntityService.cs 、 IEntityService.cs)

    路径: Nop/Services/EntityService.cs 和 Nop/Services/IEntityService.cs

  8. 为依赖注入注册服务

    路径:Nop/Web/Framework/DependencyRegistrar.cs

  9. 最后为给定模型创建控制器和视图

由于 Nop Commerce 使用 MVC3 的第一个版本,因此不支持数据库迁移,您必须手动更改数据库表。因为 MVC 代码优先必须删除并重新创建数据库以反映对数据库的更改。

如果您想在任何步骤中获得更多细节,请告诉我 - 我可以详细描述每个步骤。希望这可以帮助。

于 2012-06-02T18:00:26.333 回答
3

Behnam Esmaili解决方案是正确的,但他们忘记在 Presentation 中添加一个步骤来注册新创建的控制器服务 ==> Nop.Web.Framework ==> DependencyRegistrar.cs 像这样

builder.RegisterType<EntityService>().As<IEntityService>().InstancePerHttpRequest();         
于 2012-11-19T11:50:36.560 回答
2

问题已在 NOPCommerce 论坛中得到答复

http://www.nopcommerce.com/docs/75/plugin-with-data-access.aspx

于 2012-03-29T20:23:44.147 回答
1

@Behnam Esmaili

回答了完美的答案,但是您应该在创建控制器时遇到问题,因为您无法从 IEntityService 创建实例,因为 nopCommerce 使用依赖注入并且这是由AutoFac容器控制的。

因此,您应该在 nopCommerce 论坛上查看此帖子,这将有助于您完成工作。

还有一个注意事项,如果您想避免手动更改数据库,您应该在新版本的 nopCommerce 上执行从 1 到 8 的步骤并安装它,数据库将使用您对模型所做的更改创建。

于 2012-10-10T23:49:39.790 回答
0

一步是Behnam Esmaili的答案

在 NopCommerce 数据库中创建表。

注意:需要在数据库中手动创建表。

最后创建控制器及其视图。

如果您想了解更多详细信息,请单击此处

于 2016-09-04T11:51:07.987 回答