日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

尝试.Net Core—使用.Net Core + Entity FrameWork Core构建WebAPI(一)

發布時間:2025/3/15 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 尝试.Net Core—使用.Net Core + Entity FrameWork Core构建WebAPI(一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

想嘗試.Net Core很久了,一直沒有時間,今天回家,拋開一切,先搭建一個.Net Core的Demo出來玩玩。

廢話少說,咱直奔主題:

一、開發環境

VS2015 Update3?

Microsoft .NET Core Tools(Preview 2)

本來想用VS Code來著,但是本著最簡單原理,這里先用VS 2015,我又不是受虐狂,為啥有好用的工具擺在這里不用呢,你說是吧?

二、新建解決方案

與ASP.NET時代沒有什么區別,直接新建一個解決方案,在左邊選擇.NET Core, 然后項目模版選擇ASP.NET Core Web Application(.NET Core) 如下圖。

然后填寫解決方案名稱和項目名稱,并選擇保存路徑(這和以前完全一樣)。然后到了第二步,選擇Web API模版,身份驗證方式選擇無身份驗證(這里只是Demo,身份驗證咱就不折騰了吧,畢竟這個往往非常復雜)。并且去掉他默認打上的Host In Cloud的勾(如果你有Azure的服務器,可以勾上)。

到此,項目就創建完畢了。你可以直接點上面的運行,把項目跑起來,會直接打開一個默認的API(ValueContrller)。

這里我又創建了一個.NET Core的類庫項目,用來作為數據庫訪問層,名稱為DataAccess,這個跟原來.NET 時代的類庫項目沒有什么區別,只是需要建成.NET Core類庫。

新建完成的解決方案結構如下:

三、開始Coding

這里我以獲取本地某個數據庫中Address表的前10條記錄為例。

1.新建一個實體類Address

使其字段與數據庫一一對應,記得不要忘了設置主鍵(Id)上面的[Key]特性標簽。

public class Address{[Key]public Guid Id { get; set; }public string OpenId { get; set; }/// <summary>/// 收件人姓名/// </summary>public string Name { get; set; }/// <summary>/// 詳細收貨地址(目前僅限與榆林學院)/// </summary>public string DetailAddress { get; set; }/// <summary>/// 聯系電話/// </summary>public string Tel { get; set; }/// <summary>/// 是否默認地址/// </summary>public bool IsDefault { get; set; }}

2.添加引用

通過Nuget為項目DataAccess和WebTest引用Microsoft.EntityFrameworkCore和Microsoft.EntityFrameworkCore.SqlServer

3.新建EF Core上下文(EFDbContext)

public class EFDbContext: DbContext{public EFDbContext(DbContextOptions<EFDbContext> options):base(options){}public DbSet<Address> Address { get; set; }}

4.配置EFDbContext的啟動項

在Web項目的StartUp類中,找到ConfigureServices方法,新增EF的啟動項,代碼如下面的第一句:

public void ConfigureServices(IServiceCollection services){services.AddEntityFrameworkSqlServer().AddDbContext<EFDbContext>(options => options.UseSqlServer(Configuration.GetConnectionString("SqlServer")));// Add framework services. services.AddApplicationInsightsTelemetry(Configuration);services.AddMvc();}

這里面有兩個地方需要說明:

  • 這個方法會在項目啟動的時候被調用,并且EFDbContext會被注冊到ASP.NET Core自帶的IOC中,以后就可以在別的地方直接注入EFDbContext了(下面會用到)。
  • Configuration.GetConnectionString("SqlServer")這是去讀系統的配置,系統配置都在appsettings.json文件中,需要手動添加一下配置,添加完成后類似于:
{"ConnectionStrings": {"SqlServer": "Data Source=localhost;Initial Catalog=database-name;Integrated Security=False;Persist Security Info=False;User ID=sa;Password=password"},"Logging": {"IncludeScopes": false,"LogLevel": {"Default": "Debug","System": "Information","Microsoft": "Information"}} }

5.WebAPI Controller

首先,上代碼~

[Route("api/address")] public class AddressController : Controller {private EFDbContext _context;public AddressController(EFDbContext context){_context = context;}[HttpGet,Route("getall")]public IList<Address> GetAll(){var list= _context.Address.Take(10).ToList();return list;} }

下面來聽我慢慢道來。

  • 首先: [Route("api/address")]這個是用來定義API的公共部分,這個如果你有過WebAPI的開發經驗,這個非常容易看懂,在WebAPI中,這個會被寫成[RoutePreFix("api/address")]
  • 其次,我們看到EFDbContext是通過構造函數被注入了,這個就會用到我們在上面StartUp類中所配置的信息。
  • 接下來,方法GetAll上面的特性標簽[HttpGet]定義了該API的請求謂詞,Route("getall")定義了該API的地址,最終,這個地址和在Controller上面的Route會共同來決定這個API的地址,本例中這個GetAll方法最終生成的API地址為:/api/address/getall
  • 接下來,使用_context對象來進行數據庫操作,這個和EF是完全一樣的~

至此,我的Demo代碼就寫完了,直接F5運行,瀏覽器手動敲個地址/api/address/getall就可以訪問到數據庫里面的前十條數據啦~

轉載于:https://www.cnblogs.com/baiyunchen/p/5665100.html

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的尝试.Net Core—使用.Net Core + Entity FrameWork Core构建WebAPI(一)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。