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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

EFCore 的 DbFirst 模式

發(fā)布時間:2024/3/24 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 EFCore 的 DbFirst 模式 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

🚀 優(yōu)質(zhì)資源分享 🚀

學(xué)習(xí)路線指引(點擊解鎖)知識定位人群定位
🧡 Python實戰(zhàn)微信訂餐小程序 🧡進(jìn)階級本課程是python flask+微信小程序的完美結(jié)合,從項目搭建到騰訊云部署上線,打造一個全棧訂餐系統(tǒng)。
💛Python量化交易實戰(zhàn)💛入門級手把手帶你打造一個易擴(kuò)展、更安全、效率更高的量化交易系統(tǒng)

1 前言

EF6 時代,可以通過界面操作,添加數(shù)據(jù)庫實體。

EF Core 需要通過 CLI 來進(jìn)行該操作,具體請參考EF Core官方文檔:反向工程。

2 前置條件

  • PMC 工具(僅限 Visual Studio)或 CLI 工具。
  • 核心 NuGet 包:Microsoft.EntityFrameworkCore.Design
  • 還需要為要進(jìn)行反向工程的數(shù)據(jù)庫架構(gòu)安裝適當(dāng)?shù)臄?shù)據(jù)庫提供程序

3 主命令

dotnet ef dbcontext scaffold "[數(shù)據(jù)庫連接串]" [提供程序]

如:

dotnet ef dbcontext scaffold "server=localhost;database=efcore;uid=sa;pwd=Qwe123456;" Microsoft.EntityFrameworkCore.SqlServer

4 命令參數(shù)

4.1 生成指定表(–table)

上述命令,會生成整個數(shù)據(jù)庫的表,如果需要指定特定的表,需要使用如下:

dotnet ef dbcontext scaffold "[數(shù)據(jù)庫連接串]" [提供程序] --table table_name1 --table table_name2

4.2 保留數(shù)據(jù)庫名稱(–use-database-names)

默認(rèn)情況會修正表/列名,使用該參數(shù)盡量保留原名稱。

-UseDatabaseNames #PMC --use-database-names #.NET Core CLI

4.3 Fluent API 和數(shù)據(jù)注釋(–data-annotations)

默認(rèn)情況下,使用 Fluent API 配置實體類型。使用下面的命令,可以改為使用數(shù)據(jù)注釋。

-DataAnnotations #PMC --data-annotations #.NET Core CLI

Fluent API

entity.Property(e => e.Title).IsRequired().HasMaxLength(160);

數(shù)據(jù)注釋

[Required] [StringLength(160)] public string Title { get; set; }

4.4 指定 DbContext 名稱(–context)

指定將生成的 DbContext 類的名稱

-Context #PMC --context #.NET Core CLI

4.5 指定保存目錄(–context-dir 和 --output-dir)

-ContextDir Data -OutputDir Models #PMC --context-dir Data --output-dir Models #.NET Core CLI

4.6 指定命名空間(–namespace 和 --context-namespace)

-Namespace Your.Namespace -ContextNamespace Your.DbContext.Namespace #PMC --namespace Your.Namespace --context-namespace Your.DbContext.Namespace #.NET Core CLI

5 測試

5.1 數(shù)據(jù)庫準(zhǔn)備

由于是 DbFirst,所以這里我們先創(chuàng)建一個數(shù)據(jù)庫,名為 efcore

新建一張表 Test

CREATE TABLE [dbo].[Test]([Id] [uniqueidentifier] NOT NULL,[Name] [nvarchar](128) NULL,CONSTRAINT [PK_Test] PRIMARY KEY CLUSTERED ([Id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY]

5.2 新建一個控制臺程序

這里命名為:DbFirstTest

mkdir DbFirstTest & cd DbFirstTest #新建文件夾DbFirstTest并切換至該目錄下 dotnet new console -f net6.0 #新建.NET6.0控制臺程序

5.3 引入 Nuget 包

# 引入 EF Core 核心包 dotnet add package Microsoft.EntityFrameworkCore.Design -v 6.0.4 # 引入 SQL Server 提供程序 dotnet add package Microsoft.EntityFrameworkCore.SqlServer -v 6.0.4

5.4 執(zhí)行 Scaffold 命令

在控制臺程序的根目錄下,執(zhí)行命令(連接串請自行修改成自己的):

dotnet ef dbcontext scaffold "server=localhost;database=efcore;uid=sa;pwd=Qwe123456;" Microsoft.EntityFrameworkCore.SqlServer --data-annotations --context EfCoreContext --context-dir Data --output-dir Models

–data-annotations:數(shù)據(jù)注釋在實體上

–context EfCoreContext:上下文指定命名為 EfCoreContext

–context-dir Data:上下文保存在根目錄的 Data 文件夾下

–output-dir Models:實體保存在根目錄的 Models 文件夾下

5.5 測試源碼

在 Program.cs 添加測試代碼:

using DbFirstTest.Data; using DbFirstTest.Models;EfCoreContext db = new EfCoreContext(); Test test = new Test() {Id = Guid.NewGuid(),Name = "Add" }; db.Tests.Add(test); db.SaveChanges(); Console.WriteLine("Add Successful!");

在項目根目錄下,執(zhí)行:

dotnet build #編譯 dotnet run #運(yùn)行

執(zhí)行以后,可以看到,數(shù)據(jù)庫中添加了相應(yīng)的記錄。

5.6 源碼

Gitee:https://gitee.com/lisheng741/testnetcore/tree/master/EFCore/DbFirstTest

Github:https://github.com/lisheng741/testnetcore/tree/master/EFCore/DbFirstTest

參考來源

EF Core官方文檔:反向工程

總結(jié)

以上是生活随笔為你收集整理的EFCore 的 DbFirst 模式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 成人免费一区二区三区 | 免费一区二区三区 | 午夜黄色网 | 国产15页 | 性高潮久久久久 | 蜜桃在线一区 | 青青草视频免费 | 男生草女生的视频 | 第四色激情 | 亚洲一区黄色 | 9人人澡人人爽人人精品 | 欧美精品高清 | 日本久操 | 最新国产精品自拍 | 精品一区二区在线看 | 91免费在线视频观看 | 在线亚洲自拍 | 亚洲人免费视频 | 日韩激情片 | 亚洲综合区 | www婷婷av久久久影片 | 黄色免费网站在线看 | 亚洲欧洲国产视频 | 黑人高潮一区二区三区在线看 | 神马福利视频 | 91午夜视频 | 欧美乱码精品一区二区 | 伊人影片 | 五月婷婷综合久久 | 亚洲福利电影网 | 精品国产一二三区 | 久久久久久国产精品免费播放 | 午夜免费av | 影音先锋亚洲成aⅴ人在 | 国产一级二级三级在线观看 | 亚洲黄色片网站 | 色老大网站 | 亚洲一卡二卡 | 黑人一区二区三区 | 日韩精品一区二区三区在线视频 | 国产精品久久久爽爽爽麻豆色哟哟 | av这里只有精品 | 久久98| 91视频网| 国产欧美日本 | 国产欧美一区二区三区在线看蜜臀 | 亚洲成人精品 | 歪歪视频在线观看 | 尤物视频在线观看国产性感 | 99伊人网| 黑人借宿巨大中文字幕 | 性欧美videossex精品 | 麻豆入口| 亚洲a毛片| 久久久久人妻一区精品色欧美 | 老熟女毛茸茸浓毛 | 国产精品国产三级国产普通话对白 | 91久久网| 亚洲区视频在线观看 | 国产精品一区二区免费 | 精品国产一区二区三区av性色 | 少妇精品在线 | 黄色一级免费看 | 精品夜夜澡人妻无码av | 色吧久久 | 久久精品久久精品久久精品 | 午夜精品久久久久久毛片 | 久草小说| 91射| 自拍偷拍激情小说 | 欧美1314 | 91看片网 | 诱夫1v1高h| 一区二区视频免费在线观看 | 国产又粗又大又长 | 制服丝袜av一区二区三区下载 | 日韩黄色一级视频 | 超碰国产一区二区三区 | 男女扒开双腿猛进入爽爽免费 | 一级黄色短视频 | 亚洲av成人精品一区二区三区在线播放 | 亚洲综合在线观看视频 | 精品久久久久久无码人妻 | 精品一区免费 | 无码少妇一区二区 | 精品一区二区三区在线观看视频 | www.五月天激情 | 国内精品视频一区二区三区 | 欧美 日韩 人妻 高清 中文 | 成人一区二区三区仙踪林 | 久久国色 | 91免费观看入口 | www香蕉| 天堂中文在线官网 | 求免费黄色网址 | 久草资源网站 | 午夜色播 | 久久午夜夜伦鲁鲁一区二区 | 蜜桃成人在线 |