下面将会按照自顶向下的开发模式来讲解,怎样自动生成数据及其表。
0029 HomeController
1、定义HomeController类。
2、添加Nop.Web\Views\Home\Index.cshtml,Razo页面。
3、重构Nop.Web.Controllers.InstallController类。
4、重构Nop.Web.Infrastructure.RouteProvider.RegisterRoutes方法。
5、重构Nop.Web.Framework.Infrastructure.DependencyRegistrar.Register方法添加语句:
//通过.NetCore框架依赖注入容器实例的指定API方法,对数据交接中间件(这里特指:FluentMigrator)和指定数据库软件进行依赖注入操作。。
services.AddTransient<IDataProviderManager, DataProviderManager>();
services.AddTransient(serviceProvider =>
serviceProvider.GetRequiredService<IDataProviderManager>().DataProvider);
6、按F5执行程序,并提交数据库安装页面中的信息后,打开指定的数据库软件,在该软件中已经自动生成了指定的数据库,但没有实体实例对应的表。
7、重构Nop.Data.NopDbStartup.ConfigureServices方法。
0030 NopMigrationDefaults、NopMigrationAttribute、SchemaMigration
NopMigrationDefaults类,根据该类及其属性成员的定义,对数据库中的迁移信息表持久化一些指定的数据信息。
NopMigrationAttribute类,该类会作为一个指定迁移类的标记,在执行了指定迁移类后,会在指定迁移信息表中持久化一行相关的迁移信息数据。
SchemaMigration类,根据当前程序中定义所有的实例类型、及其属性成员、和属性成员的类型、约束规则,通过迁移操作在指定的数据库中自动生成指定表及其字段。
8、按F5执行程序,并提交数据库安装页面中的信息后,打开指定的数据库软件,在该软件中已经自动生成了指定的数据库及其相应的表。
(1)、在Microsoft SQL Server数据库软件中自动生成指定数据库及其表。
(2)、在MySQL数据库软件中自动生成指定数据库及其表。
注意:
- nopCommerce程序实现与MySQL数据库软件数据交互操作时,MySQL数据库软件的端口必为默认端口:3306,否则就会因连接不到该数据库软件而,导致异常不能在该软件中自动生成指定的数据库及其表。
- 服务器名称也必须为127.0.0.1,否则会因连接不到该数据库软件而,导致异常不能在该软件中自动生成指定的数据库及其表。
- SQL Server用户名也必须为root,否则也因连接不到该数据库软件而,导致异常不能在该软件中自动生成指定的数据库及其表。
(3)、在PostgreSQL数据库软件中自动生成指定数据库及其表。
注意:
- nopCommerce程序实现与PostgreSQL数据库软件数据交互操作时, 服务器名称必须为127.0.0.1,否则会因连接不到该数据库软件而,导致异常不能在该软件中自动生成指定的数据库及其表。
- SQL Server用户名也必须为postgres,否则也因连接不到该数据库软件而,导致异常不能在该软件中自动生成指定的数据库及其表。
9、对以上功能更为具体实现和注释见:21-08-07_Nop_4.40.3(009_执行程序自动在指定的数据库软件中自动生成相应的生成数据库及其表)。