SimplCommerce(asp.net core),把MSSql換成MySQL
阿新 • • 發佈:2018-12-18
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,我的已經跑起來了,這是我第二天回想昨天的步驟寫的,如有疑問可以郵箱我或者給我留言