發表文章

使用 IG API 撈取 IG 貼文的留言

圖片
  登入 https://developers.facebook.com/ 商業帳號的下拉式選單若沒有資料可以選,要記得先去 meta 後台 https://business.facebook.com/ 設定管理權限 回到開發後台 測試 API https://developers.facebook.com/docs/instagram-api/getting-started https://developers.facebook.com/docs/instagram-api/reference/ig-media https://developers.facebook.com/docs/instagram-api/reference/ig-media/comments 也可以使用 fields 撈取想要的欄位 欄位名稱可參考此網頁的下方 https://developers.facebook.com/docs/instagram-api/reference/ig-comment

add-migration 遇到 The foreign key property 'Article.ArticleTypeId1' was created in shadow state 問題

圖片
環境: asp.net core MVC 搭配 sql server 2014 使用 entity framework core code first 下  add-migration 指令時,發現奇怪的訊息       The foreign key property 'Article.ArticleTypeId1' was created in shadow state because a conflicting property with the simple name 'ArticleTypeId' exists in the entity type, but is either not mapped, is already used for another relationship, or is incompatible with the associated primary key type. See https://aka.ms/efcore-relationships for information on mapping relationships in EF Core.  先來看模型,有兩個 Article.cs 與 ArticleType.cs 文章是 Article.cs  Article.cs 裡面有一個 ArticleTypeId 欄位用來記錄文章的分類 另外也宣告一個 ArticleType 的導覽屬性 文章分類是 ArticleType.cs  產生的 Migration 內容 ArticleType 在 Article.cs 裡面是導覽屬性,加了就會跑出  ArticleTypeId1 覺得超級奇怪 若沒宣告 ArticleType  屬性是不會出錯的 看了很久才發現... ArticleType.cs 的 Id 屬性的型別打錯了 應該要打 int 我打成 string  XDDDDD 浪費了一個下午

Visual Studio 2022 將常用的功能選項加入至工具列,例如自動排版、自動排序 using

圖片
在使用 VS 的過程中,常常會使用到上方工具列裡面的選項 有些選項藏在好此層的選項之中,使用起來十分不便 除了透過快捷鍵來使用之外,其實也可以將這些選項加入到工具列的第一層選項上 以格式化文件(也就是自動排版)來說,有兩種操作方式 點擊工具列 > 進階 > 格式化文件 使用快捷鍵 Ctrl + E, D 其中工具列的方式,需要點擊三次滑鼠左鍵才能使用自動排版的功能,真的是蠻累人的 在這邊分享一個好用的小技巧 其實可以將「格式化文件」的選項新增到工具列的第一層 這樣要使用時,只要到工具列點一下滑鼠左鍵即可 設定方式如下: 在上「工具列空白處」按滑鼠右鍵,選擇「自訂」選項 切換到「命令」頁籤,選擇「工具列」,並選取「文字編輯器」,在按「加入命令」按鈕 因「自動排版」是在工具列中的編輯分類,所以先點選「編輯」分類 然後在左區使用滾輪地方找到該選項,也就是「文件格式」, 「命令」名稱是根據第一個字的筆劃去做排序 這邊找自己要的命令需要花一點時間,因為還蠻多的~ 但設定完成之後,就一勞永逸,不需要重新設定 找到想新增的命令之後,點擊並按下「確定」按鈕 這邊可能會發現這裡的文字跟工具列的文字不太一樣 有一個小技巧就是可以觀察該項目前的圖示,確定是否有一樣 檢查畫面是否出現「文件格式」的選項,並按下「關閉」 查看工具列,就會看到本來在第三層的選項,已經備新增到第一層了 以後要使用就直接點選即可,真的是非常方便 另外補充一個常用的功能選項 有時候透過範本新增的程式碼,常常會有一些沒有用到的 using 畫面會以淺灰色的方式呈現 在自己的開發團隊中,是強制要把這些沒用到的 using 移除並將有使用到的 using 進行排序 但真的蠻容易忘記的,每次被提醒都很不好意思 因為這個選項要按滑鼠右鍵才看得到「移除與排序 Using」,或是要使用快捷鍵 Ctrl + R, Ctrl + G 如果不喜歡使用快捷鍵,或是不想按太多次滑鼠 那麼也是一樣可以將移除與排序的功能選項加到工具列第一層試試看~

使用 EntityFrameworkCore 搭配 SQL Server 遇到 'DbContextOptionsBuilder' 未包含 'UseSqlServer' 問題

圖片
在 Startup.cs 的 ConfigureServices 方法中設定資料庫為 SQL Server  並從組態檔中讀取連接字串 需要使用下列程式碼 services.AddDbContext<Repository>(options =>      options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"))); 但畫面上的 UseSqlServer 卻是紅色的 顯示以下的錯誤訊息: 'DbContextOptionsBuilder' 未包含 'UseSqlServer' 的定義,也找不到可接受類型 'DbContextOptionsBuilder' 第一個引數的可存取擴充方法 'UseSqlServer' (是否遺漏 using 指示詞或組件參考?) 解決方法: 安裝 Microsoft.EntityFrameworkCore.SqlServer 點選相依性 > 套件 > 管理 NuGet 套件 輸入關鍵字搜尋,選點 Microsoft.EntityFrameworkCore.SqlServer 後按安裝 接受授權,按我接受 程式碼即可正常編譯