2019年12月30日 星期一

.Net Core 問題6 Scaffold-DbContext Build failed.

承接問題4.Net Core 問題4 DB First
剛發現Build failed
如過自行修改了Scaffold-DbContext所產生的class很容易遇到
目前我是三層式架構所以有多專案在一個方案裡面
測試了兩三次
先將其他專案都移除後再執行Scaffold-DbContext
就可以順利產生class之後再將其他專案加回來
有更好辦法也可提供

2019年12月20日 星期五

.Net Core 問題5 3.0以上版本分頁問題

今天寫了Blazor的Sample專案測試到了分頁時
 stafflist = await this._staffService.GetAll().Skip(1).Take(1).ToListAsync();

出現了下列錯誤
SqlException: 接近 'OFFSET' 之處的語法不正確。 FETCH 陳述式中的選項 NEXT 使用方式無效。 context
後來找到一堆方法
ervices.AddDbContext(options => options.UseSqlServer(ConnectionString));
改成
services.AddDbContext(options => options.UseSqlServer(ConnectionString,build =>build.UseRowNumberForPaging()));
很好一樣出錯,後來找到了原因,目前使用的資料庫是SQL Server 2008R2
微軟提到了已移除 UseRowNumberForPaging 目前可能只有兩條路
1.升級SQL Server
2.降低.Net Core版本

2019年12月9日 星期一

.Net Core 問題4 DB First

必須安裝下列安裝(套件管理主控台)
Install-Package Microsoft.EntityFrameworkCore.SqlServer -Version 3.1.0
Install-Package Microsoft.EntityFrameworkCore.SqlServer.Design -Version 1.1.6
Install-Package Microsoft.EntityFrameworkCore.Tools -Version 3.1.0
//第一次乾淨時
Scaffold-DbContext "Server=192.168.0.1;Database=Sample;user id=sa;password=1234567;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -Project sample.model
//有更新時
Scaffold-DbContext "Server=192.168.0.1;Database=Sample;user id=sa;password=1234567;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -Project sample.model -Force
嘗試了很多次如果將原本產生的類別刪除
目前只有重新新增一個專方案在將舊專案加入
常遇到Build failed或是直接沒反應
期待能跟之前一樣有工具
參考來源
ASP.NET Core 3.0 如何使用 Database First
“Build failed” on Database First Scaffold-DbContext