iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 4
0
Modern Web

零經驗ASP .NET Core 30 DAY全紀錄系列 第 4

零經驗 .NET Core 30 DAY----- Day4 Entity Framework Core 對應資料庫

  • 分享至 

  • xImage
  •  

最近在忙著準備證照跟轉職,忙著洽談轉職,心很累阿/images/emoticon/emoticon06.gif為自己堅持到現在,先給自己拍拍手(才第四天還敢拍手啊!?/images/emoticon/emoticon03.gif)
Day2我已經建好我的Tables了,那今天的目標就是”Entity Framework Core 對應資料庫”。

一、安裝套件

我增加的是下列這幾個,在PowerShell輸入指令安裝。

dotnet add package Microsoft.EntityFrameworkCore.SqlServer
dotnet add package Microsoft.EntityFrameworkCore.Design
dotnet add package EntityFramework
dotnet add package Microsoft.VisualStudio.Web.CodeGeneration.Design

要找各種資料庫的package可以參考https://docs.microsoft.com/zh-tw/ef/core/providers/?tabs=dotnet-core-cli

二、dbcontext scaffold

把現有的DB對應起來,指令如下

dotnet ef dbcontext scaffold "server=DBOST;database=DBNAME;User ID=USERID;Password=Password;trusted_connection=true;Integrated Security=False;" microsoft.entityframeworkcore.sqlserver -o Models

完成後可以在Models下看到對應的檔案。
https://ithelp.ithome.com.tw/upload/images/20200910/20130030cH2f5S7CwG.png
接下來請到Context, 裡面有連線字串,打開來會看到下面這一段。

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            if (!optionsBuilder.IsConfigured)
            {
#warning To protect potentially sensitive information in your connection string, you should move it out of source code. See http://go.microsoft.com/fwlink/?LinkId=723263 for guidance on storing connection strings.
                optionsBuilder.UseSqlServer("連線字串");
            }
        }

將連線字串拿掉或是整個OnConfiguring移除也可以,改由寫在 appsettings.json 裡面。
"AllowedHosts": "*" 後面加上

,
    "ConnectionStrings": {
        " ConnectionStrings 名稱": "連線字串"
    }

再來,於 Startup.cs 中的ConfigureServices function中設定 DbContext,讓 DbContext 可以被建構式使用。

 public void ConfigureServices(IServiceCollection services)
        {
            services.AddControllersWithViews();
            services.AddDbContext<ithelp12Context>(options =>
        options.UseSqlServer(Configuration.GetConnectionString("ithelp12")));
        }

到這邊是我照網路上的設定,BUT卻不能使用,查了網路上很多解法但都無效(如果有人有解答拜託教教菜逼八如我!),所以我最後其實是把protected override void OnConfiguring裡刪除的連線字串放回去了,那明天先來談談post的跟get的概念,還有學學EF CORE的新增、查詢及修改,再來做超簡易的註冊功能。

顯示的錯誤
https://ithelp.ithome.com.tw/upload/images/20200910/20130030yymjCkuoq6.png
參考的解法
https://www.thecodebuzz.com/no-database-provider-has-been-configured-for-this-dbcontext/
https://entityframeworkcore.com/zh-TW/knowledge-base/59861448/

DAY4心得:今天好累,不想打心得/images/emoticon/emoticon07.gif


上一篇
零經驗 .NET Core 30 DAY----- Day3 Layout及頁面跳轉
下一篇
零經驗 .NET Core 30 DAY----- Day5 GET&POST及EF CORE新增、查詢及修改
系列文
零經驗ASP .NET Core 30 DAY全紀錄30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言