承接問題4.Net Core 如何採用DB First
剛發現Build failed
如過自行修改了Scaffold-DbContext所產生的class很容易遇到
目前我是三層式架構所以有多專案在一個方案裡面
測試了兩三次
先將其他專案都移除後再執行Scaffold-DbContext
就可以順利產生class之後再將其他專案加回來
有更好辦法也可提供
2023-10-31補充更新
model的專案設定成預設專案後再執行即可
2019年12月30日 星期一
2019年12月20日 星期五
.Net Core 3.0以上版本分頁問題
今天寫了Blazor的Sample專案測試到了分頁時
出現了下列錯誤
微軟提到了已移除 UseRowNumberForPaging 目前可能只有兩條路
1.升級SQL Server
2.降低.Net Core版本
3.Dapper或其他可直接下SQL語法
stafflist = await this._staffService.GetAll().Skip(1).Take(1).ToListAsync();
出現了下列錯誤
SqlException: 接近 'OFFSET' 之處的語法不正確。 FETCH 陳述式中的選項 NEXT 使用方式無效。 context後來找到一堆方法
services.AddDbContext<CoreSampleContext>(options => options.UseSqlServer(ConnectionString));改成
services.AddDbContext<CoreSampleContext>(options => options.UseSqlServer(ConnectionString,build =>build.UseRowNumberForPaging()));很好一樣出錯,後來找到了原因,目前使用的資料庫是SQL Server 2008R2
微軟提到了已移除 UseRowNumberForPaging 目前可能只有兩條路
1.升級SQL Server
2.降低.Net Core版本
3.Dapper或其他可直接下SQL語法
2019年12月9日 星期一
.Net Core 如何採用DB First
必須安裝下列安裝(套件管理主控台)
方法1.將專案設為起始專案
方法2.移除其他專案再執行在加回其他專案
方法3.檢查是否其他地方有錯誤
參考來源
ASP.NET Core 3.0 如何使用 Database First
“Build failed” on Database First Scaffold-DbContext How to prevent Entity Framework Core 2.0 from Renaming Tables and Columns in Generated Classes (Database First)
Scaffold-DbContext
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
Install-Package Microsoft.EntityFrameworkCore.SqlServer Install-Package Microsoft.EntityFrameworkCore.SqlServer.Design Install-Package Microsoft.EntityFrameworkCore.Tools//第一次乾淨時
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//需與原資料庫同檔名時
Scaffold-DbContext "Server=192.168.0.1;Database=Sample;user id=sa;password=1234567;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -Project sample.model -UseDatabaseNames常遇到Build failed或是直接沒反應
方法1.將專案設為起始專案
方法2.移除其他專案再執行在加回其他專案
方法3.檢查是否其他地方有錯誤
參考來源
ASP.NET Core 3.0 如何使用 Database First
“Build failed” on Database First Scaffold-DbContext How to prevent Entity Framework Core 2.0 from Renaming Tables and Columns in Generated Classes (Database First)
Scaffold-DbContext
2019年11月21日 星期四
.Net Core 如何發佈到IIS
.Net Core最有價值的就是跨平台
不用再依附於.net framework 發佈時
以下依需求選擇
1.可選擇.net core版本
2.與Framework相依或獨立
3.發佈到linux osx win
發佈到IIS上其實跟原本設定的方式都一樣
但須特別安裝 .NET Core RunTime 及 .Net Core Windows Server Hosting
發佈到linux可參考官網Linux 上 .NET Core 的必要條件
發佈到Max可參考官網macOS 上 .NET Core 的先決條件
如果程式發佈是winX64時在IIS上啟用32位元則要關掉
否則可能出現,HTTP Error 500.32 - ANCM Failed to Load dll 的錯誤
參考來源
IIS - 運行 ASP.NET Core 網站
[ASP.net Core] 部署 ASP.net Core 到 IIS 個人踩雷合集
不用再依附於.net framework 發佈時
以下依需求選擇
1.可選擇.net core版本
2.與Framework相依或獨立
3.發佈到linux osx win
發佈到IIS上其實跟原本設定的方式都一樣
但須特別安裝 .NET Core RunTime 及 .Net Core Windows Server Hosting
發佈到linux可參考官網Linux 上 .NET Core 的必要條件
發佈到Max可參考官網macOS 上 .NET Core 的先決條件
如果程式發佈是winX64時在IIS上啟用32位元則要關掉
否則可能出現,HTTP Error 500.32 - ANCM Failed to Load dll 的錯誤
參考來源
IIS - 運行 ASP.NET Core 網站
[ASP.net Core] 部署 ASP.net Core 到 IIS 個人踩雷合集
.Net Core Visual Studio如何安裝JS/CSS套件問題
開了一個.Net Core 3.0專案後,
習慣性的想要安裝常用必備的套件打開Nugut套件管理員 > 套件管理主控台,
然後貼上常用的語法按Enter跑完了!!
發現疑!!怎麼js都沒安裝,
看了一下內容完全沒有任何.js的文件進來,
找了一篇文章如下參考有寫到可使用Bower,
找一下Bower發現暗黑執行序有文章寫到Bower被放生了,
多了一個Library Manager,使用起來是蠻簡單的。
專案上右鍵 > 加入 > 用戶端程式庫 > 提供者、程式庫輸入條件安裝即可
找一下Bower發現暗黑執行序有文章寫到Bower被放生了,
多了一個Library Manager,使用起來是蠻簡單的。
專案上右鍵 > 加入 > 用戶端程式庫 > 提供者、程式庫輸入條件安裝即可
參考來源
How do I include JavaScript packages I install from Nuget?
ASP.NET Core 練功筆記3 - 使用 LibMan 安裝 JavaScript 程式庫
ASP.NET Core 練功筆記3 - 使用 LibMan 安裝 JavaScript 程式庫
2019年11月18日 星期一
.Net Core 3.0 WinForm 無設計畫面
看完了ASP.NET Core 值得學嗎?發覺.net Core的確有學習的必要,
於是先用winform來試試,沒想到發現居然沒設計畫面,
在網路上找到已經有擴充套件及影片C# Tutorial - NET Core 3.0 WinForms Designer | FoxLearn
套件頁面:WINDOWS FORMS: .NET CORE WINDOWS FORMS DESIGNER
使用方法:下載安裝套件,重開VS2019即可
目前尚未遇到有出問題
參考來源
C# Tutorial - NET Core 3.0 WinForms Designer | FoxLearn
於是先用winform來試試,沒想到發現居然沒設計畫面,
在網路上找到已經有擴充套件及影片C# Tutorial - NET Core 3.0 WinForms Designer | FoxLearn
套件頁面:WINDOWS FORMS: .NET CORE WINDOWS FORMS DESIGNER
使用方法:下載安裝套件,重開VS2019即可
目前尚未遇到有出問題
參考來源
C# Tutorial - NET Core 3.0 WinForms Designer | FoxLearn
2019年9月26日 星期四
c# 日期區間小撇步
單一日期查詢只需比對大於and小於
但若日期開兩個欄位,
一個是日期起,
一個是日期迄,
如何查詢區間內的資料?
舉例:
想知道2019-09-01到2019-09-30之前有哪些人在職
稍微畫個圖後有了靈感
但若日期開兩個欄位,
一個是日期起,
一個是日期迄,
如何查詢區間內的資料?
舉例:
想知道2019-09-01到2019-09-30之前有哪些人在職
稍微畫個圖後有了靈感
((到職日期 <= 2019-09-30 && 離職日期 >= 2019-09-01) || (離職日期 =null ))會就在這個區間
2018年10月25日 星期四
c# string.Format、StringBuilder.AppendFormat 輸入字串格式不正確
今天早上發生了一個錯誤"輸入字串格式不正確"
程式從頭檢查到尾有字串相加、string.Format、StringBuilder.AppendFormat
所有都檢查過了{0},{1}...也都詳細檢查過了該帶入的都帶入了
後來程式上沒問題就將目標轉到文章上去
發現了其中一筆資料中內容文字{X}有這樣的字元出現
然後檢查了程式剛好是sb.AppendFormat(item.context);
所以{X}部分被當作要取代的索引然後就錯了
最簡單解法改為sb.Append (item.content);
單純加入文字
程式從頭檢查到尾有字串相加、string.Format、StringBuilder.AppendFormat
所有都檢查過了{0},{1}...也都詳細檢查過了該帶入的都帶入了
後來程式上沒問題就將目標轉到文章上去
發現了其中一筆資料中內容文字{X}有這樣的字元出現
然後檢查了程式剛好是sb.AppendFormat(item.context);
所以{X}部分被當作要取代的索引然後就錯了
最簡單解法改為sb.Append (item.content);
單純加入文字
2018年10月24日 星期三
未分類 Blazor 相關網站整理
之前學過Angular但因公司架構關係所以一直無法使用,
當然久未使用就會漸漸淡忘掉,
直到前陣子在FB上看到保哥發表了有關Blazor文章,
一整個覺得這東西必須要學起來阿,
當然目前還在測試階段但既然可以用C#+razor來寫學習就不需要像Angulars那麼複雜,
以下是目前所看到的網站整理,
未來有開始寫時在記錄程式。
Blazor官網
ASP.NET Core – CRUD Using Blazor And Entity Framework Core
Creating an SPA Using Razor Pages With Blazor
S207 - Blazor: Modern Web development with .NET and WebAssembly - Daniel Roth
當然久未使用就會漸漸淡忘掉,
直到前陣子在FB上看到保哥發表了有關Blazor文章,
一整個覺得這東西必須要學起來阿,
當然目前還在測試階段但既然可以用C#+razor來寫學習就不需要像Angulars那麼複雜,
以下是目前所看到的網站整理,
未來有開始寫時在記錄程式。
Blazor官網
ASP.NET Core – CRUD Using Blazor And Entity Framework Core
Creating an SPA Using Razor Pages With Blazor
S207 - Blazor: Modern Web development with .NET and WebAssembly - Daniel Roth
2018年10月11日 星期四
2018年8月6日 星期一
Windows Win10安裝SQL 2012 0x800F0954問題
因win10無預設安裝.net 3.5了所以必須額外安裝
無論是由windows開啟或是下載獨立安裝都會遇到個錯誤0x800F0954
以下網路上找到解法記錄一下
無論是由windows開啟或是下載獨立安裝都會遇到個錯誤0x800F0954
以下網路上找到解法記錄一下
1.windows + r 輸入regedit; 2.找到路徑HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU,其中UseWUServer默認值為1,改成0; 3.檔案總管 > 本機 > 右鍵 > 服務與應用 > 服務 > Windows Update > 停止再重啟來源:win10 解決.net framework 3.5 安裝報錯 0x800F0954問題
2018年6月21日 星期四
jQuery 常用的Plugin
平時要用都忘記先記錄一下
行事曆
Full Calendar
日期選擇
bootstrap-datepicker
時間選擇
ClockPicker
多選
Select2
bootstrap-select
Css Animate.css
行事曆
Full Calendar
日期選擇
bootstrap-datepicker
時間選擇
ClockPicker
多選
Select2
bootstrap-select
Css Animate.css
2018年5月31日 星期四
c# 判斷日期區間遇到幾次生日
最近用到寫的日期區間遇到幾次生日
也可以用來判斷日期區遇到日期幾次
也許有更好的可以交流
也可以用來判斷日期區遇到日期幾次
也許有更好的可以交流
public static int GetBetweenBirthdayCount(DateTime pFrom, DateTime pTo, DateTime pBirthday)
{
int mBirthdayCount = 0;//會過幾次生日
int TotalYear = pTo.Year - pFrom.Year;//看區間有幾年
for (int i = 0; i <= TotalYear; i++)
{
int y = pFrom.AddYears(i).Year;
string m = pBirthday.Month.ToString().PadLeft(2, '0');
string d = pBirthday.Day.ToString().PadLeft(2, '0');
//如果他是生日229的要判斷
if (m == "02" && d == "29")
{//四除的盡就算閏年
if (y % 4 != 0)
{
d = "28";
}
}
DateTime EveryBirthday = DateTime.Parse(y + "-" + m + "-" + d);
if (pFrom <= EveryBirthday && pTo >= EveryBirthday)
{
mBirthdayCount++;
}
}
return mBirthdayCount;
}
2018年5月24日 星期四
Angular 安裝時常用問題處理(09)
1.You seem to not be depending on "@angular/core" . This is an error.
有時候重裝就可以了
1.保哥的Angular 開發實戰:從零開始
2.Angular官網
有時候重裝就可以了
npm cache clear --force npm install2.Cannot find module '@angular-devkit/core' ...
npm install --save-dev @angular-devkit/build-angular3.刪除node_modules資料夾再重新
npm install參考資料
1.保哥的Angular 開發實戰:從零開始
2.Angular官網
2018年5月21日 星期一
Angular [(Two Way Binding)](雙向繫結)(08)
html部分
1.保哥的Angular 開發實戰:從零開始
2.Angular官網
<input [(ngModel)]="keyword" placeholder="[(雙向繫結)]" (keyup.escape)="onKeyClear()"/>
文字:{{keyword}},字數:{{keyword.length}}
ts部分
keyword = '';
onKeyClear() {
this.keyword = "";
}
參考資料1.保哥的Angular 開發實戰:從零開始
2.Angular官網
Angular (Event Binding)(事件繫結)(07)
$event可傳可不傳
html部分
保哥作業1
請利用 Angular 資料繫結方法 (內嵌繫結、屬性繫結、事件繫結) 完成任務。
1.當使用者在網頁右側的關鍵字搜尋輸入文字時,會自動在輸入框的正下方顯示正在輸入的字元數。
2.當使用者在輸入框按下 Escape 按鍵時,會自動清空輸入框的內容。
2022-09-22修正,比較懶的做法寫在同一個判斷中。
html部分
1.保哥的Angular 開發實戰:從零開始
2.Angular官網
html部分
<a on-click="CountPlus($event)">點擊次數{{count}}</a><br />
<a (click)="CountPlus($event)">點擊次數{{count}}</a>
ts部分
export class EventBindingComponent implements OnInit {
count = 0;
CountPlus($event:any) {
this.count++;
console.log($event);
}
constructor() { }
ngOnInit(): void {
}
}
===============================================================保哥作業1
請利用 Angular 資料繫結方法 (內嵌繫結、屬性繫結、事件繫結) 完成任務。
1.當使用者在網頁右側的關鍵字搜尋輸入文字時,會自動在輸入框的正下方顯示正在輸入的字元數。
2.當使用者在輸入框按下 Escape 按鍵時,會自動清空輸入框的內容。
2022-09-22修正,比較懶的做法寫在同一個判斷中。
html部分
<input type="text"
(keyup)="onKeyClear($event)" />
字數:{{keywordCount}}
ts部分
keyword = "";
keywordCount = 0;
onKeyClear(event: KeyboardEvent) {
let elm = (<HTMLInputElement>event.target);
if (event.key == "Escape") {
elm.value = "";//這段要清除掉Html上的文字
this.keyword = "";
} else {
this.keyword = elm.value;
}
console.log(this.keyword);
this.keywordCount = this.keyword.length;
}
參考資料1.保哥的Angular 開發實戰:從零開始
2.Angular官網
Angular [Property Binding](屬性繫結)(06)
html部分
1.保哥的Angular 開發實戰:從零開始
2.Angular官網
<a [href]="url" [attr.data-tite]="title">{{title}}</a>
ts部分
export class PropertyBindingComponent implements OnInit {
title = "{{屬性繫結}}";
url = "http://tw.yahoo.com";
constructor() { }
ngOnInit(): void {
}
}
參考資料1.保哥的Angular 開發實戰:從零開始
2.Angular官網
2018年5月18日 星期五
Angular {{Interpolation}}(內嵌繫結)(05)
html部分
1.保哥的Angular 開發實戰:從零開始
2.Angular官網
<a href="{{url}}">{{ title }}</a>
ts部分
export class InterpolationComponent implements OnInit {
title = "{{內嵌繫結}}";
url = "http://tw.yahoo.com";
constructor() {
}
ngOnInit(): void {
}
}
參考資料1.保哥的Angular 開發實戰:從零開始
2.Angular官網
2018年5月17日 星期四
Angular 如何建立component(04)
Angular每一個畫面都是多個component所組成
以下會記錄如何新增component
1.首先先輸入
3.建立component
找到剛新增的pages.component.ts
裡面有一個 selector: 'app-pages'
只要將app-pages加入在app.component.html即可顯示出剛剛的頁面
1.保哥的Angular 開發實戰:從零開始
2.Angular官網
以下會記錄如何新增component
1.首先先輸入
ctrl + `(單引號,通常在1的左邊tab上面)2.按+號新增終端機,預設可能是power shell,選擇終端機資料夾預設應該會在目前的專案上
3.建立component
ng generate component pages ng generate 建立一個 簡寫 g component 哪一種範本 簡寫 cpages 頁面名稱 未來請輸入方式如下列 ng g c pages
ng g -h 可看目前版本所有可建立的範本4.建立起來後,會多一個資料夾及有四個檔案,然後app.module.ts 會異動
CREATE src/app/pages/pages.component.html (24 bytes) <-Html
CREATE src/app/pages/pages.component.spec.ts (621 bytes) <-測試檔
CREATE src/app/pages/pages.component.ts (265 bytes) <-程式
CREATE src/app/pages/pages.component.css (0 bytes) <-css
UPDATE src/app/app.module.ts (392 bytes) 修改了declarations
及import { PagesComponent } from './pages/pages.component';
5.如何顯示這個頁面?找到剛新增的pages.component.ts
裡面有一個 selector: 'app-pages'
只要將app-pages加入在app.component.html即可顯示出剛剛的頁面
<app-pages></app-pages>參考資料
1.保哥的Angular 開發實戰:從零開始
2.Angular官網
Angular 啟動順序(03)
AngularJs只需在前端宣告ng標籤即可運行
但到了Angular的話完全不同
這次框架有自己個一個流程
所有的程式碼及html都有固定的放法
這樣程式在跑的時候才會正常運行
前篇文章所提到的方法啟動server
1.進入網頁index.html
2.main.ts開始載入import
3.啟動AppModule
4.執行AppComponent元件
5.執行AppComponent class
6.執行AppComponent templateUrl
7.執行AppComponent style
8.載入完成呈現畫面
參考資料
1.保哥的Angular 開發實戰:從零開始
2.Angular官網
但到了Angular的話完全不同
這次框架有自己個一個流程
所有的程式碼及html都有固定的放法
這樣程式在跑的時候才會正常運行
前篇文章所提到的方法啟動server
npm start以下是已專案預設的程式跑起來的順序
1.進入網頁index.html
2.main.ts開始載入import
3.啟動AppModule
4.執行AppComponent元件
5.執行AppComponent class
6.執行AppComponent templateUrl
7.執行AppComponent style
8.載入完成呈現畫面
參考資料
1.保哥的Angular 開發實戰:從零開始
2.Angular官網
訂閱:
文章 (Atom)