SimplCommerce,一个不错的商城源码,拿来玩一玩,使用mysql
开始之前先核对一下版本把,我是2018.10.20号下载的版本,一直在研究hyper-h这个虚拟机
.net sdk 2.1.304,我现在在github上已经要2.1.402了,我电脑是这个版本的sdk
ide建议使用2017,更新到最新版本,因为低版本对sdk的支持有点坑爹,加载不到最新版的sdk就要报错(mac上给我的感觉)我的ide是vs2017 (v15.8.8)
这些东西在github介绍上也有提到,也提到了运行步骤,如果是mssql就按他的步骤我是一步完成了的;可以先尝试mssql跑起来先
========================================
接下来就处理更换数据库的工作
提供好mysql的服务,最好是你本机能够连上,避免发生错误后的排错工作
1.也是更新连接字符串,我的连接字符串如下
server=192.168.31.117;database=SimplCommerce;uid=root;pwd=123;charset=utf8;SslMode=None
注意你数据库的字符集
2.安装mysql的包,有的时候安装不上去,也是因为vs版本太低,没有识别到最新的sdk导致提示依赖的版本对不上的问题
Install-Package Pomelo.EntityFrameworkCore.MySql
3.修改mssql支持改为mysql,这里需要修改两个地方,可以用全局搜索,搜索连接字符串使用的地方
Ctrl+Shift+F,搜索“DefaultConnection”,结果可能会出现几个,但是有两个是比较眼熟的
找到 Program.cs 文件
//方法:SetupConfiguration(WebHostBuilderContext hostingContext, IConfigurationBuilder configBuilder)
//找到如下
//configBuilder.AddEntityFrameworkConfig(options =>
//options.UseSqlServer(configuration.GetConnectionString("DefaultConnection"))
//);
//=======改为
configBuilder.AddEntityFrameworkConfig(options =>
options.UseMySql(configuration.GetConnectionString("DefaultConnection"),mysqlOptions =>{
mysqlOptions.ServerVersion(new System.Version(5, 7, 24), ServerType.MySql);
})
);
找到 ServiceCollectionExtensions.cs 文件
//方法 AddCustomizedDataStore(this IServiceCollection services, IConfiguration configuration)
//这个直接改把,按上面的格式太麻烦了
//Func<DbContextOptionsBuilder, DbContextOptionsBuilder> getDbContextOptionsBuilder2 = (options) =>
//{
// return options.UseSqlServer(configuration.GetConnectionString("DefaultConnection"),
// b => b.MigrationsAssembly("SimplCommerce.WebHost"));
//};
Func<DbContextOptionsBuilder, DbContextOptionsBuilder> getDbContextOptionsBuilder = (options) =>{
return options.UseMySql(configuration.GetConnectionString("DefaultConnection"), mysqlOptions =>{
mysqlOptions.ServerVersion(new Version(5, 7, 24), ServerType.MySql);
mysqlOptions.MigrationsAssembly("SimplCommerce.WebHost");
});
};
services.AddDbContextPool<SimplDbContext>(options =>getDbContextOptionsBuilder(options));
return services;
好了,结束了,按F5,我的已经跑起来了,这是我第二天回想昨天的步骤写的,如有疑问可以邮箱我或者给我留言
986928835@qq.com
===================================== 这是一条分割线
这套代码运行起来之后,会先提示你删除样本数据,重新创建一套你需要的数据,当前版本有手机版本,和时尚版本
当点击安装的时候,会跳往网址”http://localhost:49209/SampleData/SampleData/ResetToSample“处理相关的事情,这个时候报了一个如下图所示的错误
大概的意思就是这个日期格式不被mysql识别,网上查了一下和mysql的配置有关(sql_mode),如果遇到这个问题可以找一下,我现在还是使用5.7默认的严格模式,而换成去修改他的sql语句。
当我们去定位控制器调试的时候,发现他是在找一份sql文件的语句在执行,所以去修改他sql语句也是OK的
路径:\src\SimplCommerce.WebHost\Modules\SimplCommerce.Module.SampleData\SampleContent\Fashion
希望你们也能顺利的看到如下图