如何将新表添加到NOPCommerce v2.4

时间:2012-03-29 01:16:08

标签: entity-framework-4 nopcommerce

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

5 个答案:

答案 0 :(得分: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. 最后为给定模型创建控制器和视图

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

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

答案 1 :(得分:3)

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

builder.RegisterType<EntityService>().As<IEntityService>().InstancePerHttpRequest();         

答案 2 :(得分:2)

此问题已在NOPCommerce论坛here

中得到回复

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

答案 3 :(得分:1)

@Behnam Esmaili

回答了完美的答案,但你应该面对创建控制器的问题,因为你无法从IEntityService创建一个实例,因为nopCommerce使用依赖注入,而这正由AutoFac容器控制。

所以你要Check this post on nopCommerce forum,这将有助于你完成工作。

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

答案 4 :(得分:0)

一步仍然是 Behnam Esmaili的回答

在NopCommerce数据库中创建表。

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

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

如果您想了解更多详情,请点击here