yanbolan
文章282
標籤199
類別26
efdbfirst代码生成

efdbfirst代码生成

你已经非常清楚地规划了 README.md 的结构和内容,以下是我根据你的要求整理并美化后的版本,保持原始版本号不变,使用层级标题、代码块、分隔线,并加入适当的 emoji 图标提升可读性:


📦 EF Core 生成与 Scaffold 操作说明

⚙️ 环境与工具版本(请尽量保持一致)

  • 安装 dotnet-ef 工具:

    1
    dotnet tool install --global dotnet-ef --version 7.0.14
  • 在 EFCORE 专案中需安装的 NuGet 套件:

    1
    2
    3
    dotnet add package Microsoft.EntityFrameworkCore --version 7.0.2
    dotnet add package Microsoft.EntityFrameworkCore.Design --version 7.0.3
    dotnet add package Microsoft.EntityFrameworkCore.Tools --version 7.0.3

🧩 安装自订模板(7.0 以上才支持)

获取 EF Core 7.0 的 T4 模板,注意版本号需与工具一致,否则可能导致语法问题。

1
2
dotnet new install Microsoft.EntityFrameworkCore.Templates::7.0.3
dotnet new ef-templates --force

📌 T4 文件中可查到:

1
if (!ProductInfo.GetVersion().StartsWith("10.0"))

⚠️ 注意:冒号分隔符 :: 已弃用,建议使用 @ 作为版本分隔符,例如:

1
dotnet new install Microsoft.EntityFrameworkCore.Templates@7.0.3

安装过程输出示例:

1
2
3
4
5
已安装 Microsoft.EntityFrameworkCore.Templates (版本 10.0.0),它将替换为版本 7.0.3。
成功: Microsoft.EntityFrameworkCore.Templates::7.0.3 已安装以下模板:
模板名 短名称 语言 标记
------------------------------------------- ------------ ---- ------------------
Entity Framework Core Scaffolding Templates ef-templates [C#] EFCore/Scaffolding

✅ 默认安装最新版本:

1
dotnet new install Microsoft.EntityFrameworkCore.Templates

📁 在 EFCORE 专案目录 Innolux.EFCore 中执行:

1
dotnet new ef-templates --force

🏗️ 以 Scaffold 产生 DbContext 与 Model

📂 进入项目目录 Innolux.EFCore,执行以下命令:

1
dotnet ef dbcontext scaffold "server=10.0.16.60;Port=3306;uid=root;pwd=root;database=DCS_NET;AllowPublicKeyRetrieval=True;Allow Zero Datetime=True;CharSet=utf8mb4;SslMode=none;AllowLoadLocalInfile=true;" MySql.EntityFrameworkCore --context DcsMysqlContext --context-dir Model/NET/EF --namespace Innolux.EFCore.EF.Model.Dcs --context-namespace Innolux.EFCore.EF --output-dir Model/NET/EF/Model --no-onconfiguring --force

📁 目录与命名说明

  • --context DcsMysqlContext
    → 产生的 DbContext 名称为 DcsMysqlContext

  • --context-dir Model/NET/EF
    → DbContext 文件位置为 Model/NET/EF

  • --namespace Innolux.EFCore.EF.Model.Dcs
    → Model 类命名空间为 Innolux.EFCore.EF.Model.Dcs

  • --context-namespace Innolux.EFCore.EF
    → DbContext 命名空间为 Innolux.EFCore.EF

  • --output-dir Model/NET/EF/Model
    → 实体 Model 类输出至 Model/NET/EF/Model

  • --no-onconfiguring
    → 不自动生成 OnConfiguring 方法(建议使用 DI 注入)

  • --force
    → 覆写已存在的文件


📝 小提示

  • ✅ 请确保当前目录为 Innolux.EFCore 项目根目录。
  • 🔄 若需切换数据库或环境,请修改连接字符串后重新执行 scaffold。
  • 🛠️ 若需自定义模板行为,可修改 ef-templates 内容后使用 --force 重新生成。


原文:

考虑如何编写README.md

我需要创建一个符合开发者规则的文件,使用层级化的标题,内容要简洁清晰,版本不变。虽然“8.0 2”可能是个小错误,但用户要求不要更改版本号,因此我会保留它。命令部分要用代码块,确保没有额外的评论。每个步骤都要列出,包括项目目录“Innolux.EFCore”。我会保持结构清晰,确保每个步骤明确。

EF Core 生成与 Scaffold 操作说明

环境与工具版本(请尽量保持一致)

  • dotnet-ef 工具

 

1
2
3

  dotnet tool install --global dotnet-ef --version 7.0.14

  • 在 EFCORE 专案中需安装的 NuGet 套件

  dotnet add package Microsoft.EntityFrameworkCore –version 7.0.2

  dotnet add package Microsoft.EntityFrameworkCore.Design –version 7.0.3

  dotnet add package Microsoft.EntityFrameworkCore.Tools –version 7.0.3

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35

---

## 安裝自訂模板 7.0以上才支持

获取 EF Core 7.0 的 T4 模板,注意版本号与上面工具也要一致,不然可能导致生成的 语法问题

dotnet new install Microsoft.EntityFrameworkCore.Templates::7.0.3

  dotnet new ef-templates --force

  t4文件中可查到    if (!ProductInfo.GetVersion().StartsWith("10.0")) 这个版本号是10

```bash
 dotnet new install Microsoft.EntityFrameworkCore.Templates::7.0.3

已弃用冒号分隔符 "::",以支持在 dotnet 新安装中使用符号 “@” 分隔程序包和版本。在你的案例中,这意味着使用 Microsoft.EntityFrameworkCore.Templates@7.0.3 而不是 Microsoft.EntityFrameworkCore.Templates::7.0.3。

将安装以下模板包:

   Microsoft.EntityFrameworkCore.Templates::7.0.3



已安装 Microsoft.EntityFrameworkCore.Templates (版本 10.0.0),它将替换为 版本 7.0.3。

已成功卸载 Microsoft.EntityFrameworkCore.Templates::10.0.0。

成功: Microsoft.EntityFrameworkCore.Templates::7.0.3 已安装以下模板:

模板名                                       短名称        语言  标记

-------------------------------------------  ------------  ----  ------------------

Entity Framework Core Scaffolding Templates  ef-templates  [C#]  EFCore/Scaffolding

以下会默认最新版本。。。。。。

  • 安裝 EF Core 自訂模板

 

1
2
3

  dotnet new install Microsoft.EntityFrameworkCore.Templates

  • 在 EFCORE 專案中(專案目錄為 Innolux.EFCore)產生模板

 

1
2
3
4
5

  # 於 Innolux.EFCore 專案根目錄執行

  dotnet new ef-templates --force


以 Scaffold 產生 DbContext 與 Model

  • 進入 EFCORE 專案目錄 Innolux.EFCore,執行以下命令(請在專案根目錄執行):

 

1
2
3

  dotnet ef dbcontext scaffold "server=10.0.16.60;Port=3306;uid=root;pwd=root;database=DCS_NET;AllowPublicKeyRetrieval=True;Allow Zero Datetime=True;CharSet=utf8mb4;SslMode=none;AllowLoadLocalInfile=true;" MySql.EntityFrameworkCore --context DcsMysqlContext --context-dir Model/NET/EF  --namespace Innolux.EFCore.EF.Model.Dcs  --context-namespace Innolux.EFCore.EF   --output-dir Model/NET/EF/Model       --no-onconfiguring   --force


目錄與命名說明

  • –context DcsMysqlContext

 

  - 產生的 DbContext 名稱為 DcsMysqlContext

  • –context-dir Model/NET/EF

 

  - DbContext 檔案會放在 Model/NET/EF

  • –namespace Innolux.EFCore.EF

 

  - 產生的類別命名空間為 Innolux.EFCore.EF

  • –context-namespace Innolux.EFCore.EF

 

  - DbContext 的命名空間為 Innolux.EFCore.EF

  • –output-dir Model/NET/EF/Model

 

  - 實體 Model 類別輸出到 Model/NET/EF/Model

  • –no-onconfiguring

 

  - 不會在 DbContext 中自動產生 OnConfiguring 方法(建議透過 DI 與設定檔注入連線)

  • –force

 

  - 覆寫既有檔案


小提示

  • 確認執行命令時當前工作目錄為 Innolux.EFCore 專案根目錄。  

  • 若需要不同連線或環境,請在連線字串調整後再執行 scaffold。  

  • 若需自訂 template 或 scaffold 行為,可先修改或檢視安裝的 ef-templates 內容,再使用 --force 覆寫產出。

博主:yanbolan
文章連結:https://yuris.site/2025/11_16_dd5317cb.html
版权声明:本文采用 CC BY-NC-SA 3.0 CN 协议进行许可
×