我是NopCommerce v2.4的新用户,想知道我在哪里编写代码(通过在admin或nop.web部分创建新模型)
答案 0 :(得分:20)
我花了很多时间来深入研究这个问题的深度。我可以总结解决方案如下:
创建实体类(例如Entity.cs)
路径:Nop / Core / Domain / Entity.cs
创建映射类(例如EntityMap.cs)
路径:Nop / Data / Mapping / EntityMap.cs
为MVC创建模型(例如EntityModel.cs)
路径:Nop / Admin / Models / EntityModel.cs或Nop / Web / Models / EntityModel.cs
为模型创建验证器(例如EntityValidator.cs)
路径:Nop / Admin / Validators / EntityValidator.cs或Nop / Web / Validators / EntityValidator.cs
在AutoMapperStartupTask.cs上为实体和模型创建映射配置
路径:Nop / Admin / Infrastructure或Nop / Web / Infrastructure
在MappingExtensions.cs上应用模型和实体之间的映射
路径:Nop / Admin或Nop / Web
创建服务类和服务接口(例如EntityService.cs,IEntityService.cs)
路径:Nop / Services / EntityService.cs和Nop / Services / IEntityService.cs
注册依赖注入服务
路径:Nop / Web / Framework / DependencyRegistrar.cs
最后为给定模型创建控制器和视图
由于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)