如何在ASP.NET Core中應用Entity Framework

來源:互聯網
上載者:User

標籤:figure   too   get   mod   logs   nvarchar   level   推薦   body   

註:本文提到的程式碼範例> How to using Entity Framework DB first in ASP.NET Core

如何在ASP.NET Core中應用Entity Framework

首先為大家提醒一點,.NET Core和經典.NET Framework的Library是不通用的,包括Entity Framework!

哪怎麼辦? 別急,微軟為.NET Core發布了.NET Core版本的Entity Framework,具體配置方法與經典.NET Framework版本的稍有區別,下面的內容就為帶領大家在ASP.NET Core中應用Entity Framework DB first。

註:目前部分工具處於Preview版本,正式版本可能會稍有區別。 

 

前期準備:

1.推薦使用VS2015 Update3作為你的IDE,:www.visualstudio.com

2.你需要安裝.NET Core的運行環境以及開發工具,這裡提供VS版:www.microsoft.com/net/core

3.你需要有一個Sql Server資料庫。

結構應該是這樣的。

CREATE DATABASE TestNetCoreEF GO USE TestNetCoreEF GO CREATE TABLE Student(     ID int identity primary key,     Name nvarchar(50),     Age int )   INSERT INTO Student VALUES(‘Bear‘,18) INSERT INTO Student VALUES(‘Frank‘,20)

 

建立項目

在VS中建立項目,項目類型選在ASP.NET Core Web Application (.NET Core),輸入項目名稱為TestEFInNetCore

接下來選擇Web Application, 右側身份認證選擇:No Authentication

 

安裝Entity Framework

開啟Tool->NuGet Package Manager->Package Manager Console

 

在Pack Manager Console中運行如下命令:

  Install-Package Microsoft.EntityFrameworkCore.SqlServer

  Install-Package Microsoft.EntityFrameworkCore.Tools –Pre

  Install-Package Microsoft.EntityFrameworkCore.SqlServer.Design

開啟Project.json,在節點tool中添加如下配置:

"tools": {     "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final",     …………. }

這是VS會自動下載對應的包至你的本地,目前這個還是preview版本,正式版請關注:https://docs.efproject.net/en/latest/intro.html

 

產生資料庫Mapping

在Pack Manager Console中於運行如下命令:

Scaffold-DbContext "{Your DB connect string}" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models

  {Your DB connect string}:你的資料庫連接字串

  Microsoft.EntityFrameworkCore.SqlServer:目標資料庫為Sql Server

  -OutputDir Models: 產生的檔案的存放目錄,目前目錄是根目錄下的Models目錄

之後引擎會試圖串連你的SQL Server 資料庫,並組建檔案在你指定的目錄裡。

在目錄中找到一個***Context.cs並開啟它,你會發現一個如下方法,

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder){    #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(@"{your sql connect string}");}

如自動產生代碼裡所寫的warning一樣,我們不應該把連接字串放在這裡。接下來的工作,讓我們來從appsettings.json中讀取配置。

在***Context.cs中添加一個屬性用來存放ConnectionString,另外我們需要重寫OnConfiguring方法,完整的代碼應該是這樣:

public static string ConnectionString { get; set; } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) {     optionsBuilder.UseSqlServer(ConnectionString); }

開啟appSetting.json,添加如下代碼:

"ConnectionStrings": {     "TestNetCoreEF": "Data Source={your sql server host address};Initial Catalog=TestNetCoreEF;user id={your username};password={your password};" },

完整的代碼應該像這樣:

{     "ConnectionStrings": {         "TestNetCoreEF": "Data Source={your sql server host address};Initial Catalog=TestNetCoreEF;user id={your username};password={your password};"     },     "Logging": {         "IncludeScopes": false,         "LogLevel": {             "Default": "Debug",             "System": "Information",             "Microsoft": "Information"         }     } }

開啟 Startup.cs,在ConfigureServices(IServiceCollection services)方法中添加如下代碼:

TestNetCoreEFContext.ConnectionString = Configuration.GetConnectionString("TestNetCoreEF"); 

完整的代碼應該是這樣:

public void ConfigureServices(IServiceCollection services) {     //config the db connection string     TestNetCoreEFContext.ConnectionString = Configuration.GetConnectionString("TestNetCoreEF");       // Add framework services.     services.AddMvc(); }

 

關於調用Entity Framework

真的,相信我,跟之前一毛一樣,真的一毛一樣。

Models.TestNetCoreEFContext context = new Models.TestNetCoreEFContext();var StudentList = context.Student.ToList();

 

最後:完整的代碼Sample以及如何運行它,請訪問:How to using Entity Framework DB First in ASP.NET Core

如何在ASP.NET Core中應用Entity Framework

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.