<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Util應用框架快速入門(2) - Web Api開發入門

      本文是使用Util應用框架開發 Web Api 項目快速入門教程.

      前面已經詳細介紹了環境搭建,如果你還未準備好,請參考前文.

      開發流程概述

      1. 創建代碼生成專用數據庫.

        Util應用框架需要專門用來生成代碼的數據庫,該數據庫僅用于代碼生成.

        約定: 代碼生成數據庫應以 .Generator 結尾.

        當然你也可以隨意起名,但使用約定名稱能更清晰的說明數據庫用途.

      2. 使用配套代碼生成器生成代碼.

        Util配套代碼生成器連接到代碼生成數據庫,讀取元數據,創建項目基架.

      快速入門示例項目概述

      • 項目名稱: Demo

      • 代碼生成數據庫名稱: Demo.Generator

      創建示例數據庫

      本文創建快速入門示例項目的代碼生成數據庫.

      共提供三種數據庫建庫腳本,你只需選擇一種即可.

      創建 Sql Server 代碼生成數據庫

      如果你使用Sql Server數據庫,請按下面步驟創建Sql Server示例數據庫和示例表.

      創建 Demo.Generator 數據庫

      打開 SQL Server Management Studio ,新建數據庫 Demo.Generator .

      點擊 確定 按鈕,創建數據庫.

      添加示例表 Student

      選中 Demo.Generator 數據庫,點擊 新建查詢 按鈕.

      復制下面Sql語句,創建 Student 示例表.

      Sql建庫腳本通常使用 PowerDesigner 等數據建模工具生成.

      CREATE TABLE [dbo].[Student](
      	[StudentId] [uniqueidentifier] NOT NULL,
      	[Name] [nvarchar](200) NOT NULL,
      	[Gender] [int] NULL,
      	[Age] [int] NULL,
      	[Birthday] [datetime] NULL,
      	[IdCard] [nvarchar](50) NULL,
      	[Enabled] [bit] NOT NULL,
      	[CreationTime] [datetime] NULL,
      	[CreatorId] [uniqueidentifier] NULL,
      	[LastModificationTime] [datetime] NULL,
      	[LastModifierId] [uniqueidentifier] NULL,
      	[IsDeleted] [bit] NOT NULL,
      	[Version] [timestamp] NULL,
      	[ExtraProperties] [nvarchar](max) NULL,
       CONSTRAINT [PK_STUDENT] PRIMARY KEY CLUSTERED 
      (
      	[StudentId] ASC
      )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
      ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
      GO
      
      EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'學生標識' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Student', @level2type=N'COLUMN',@level2name=N'StudentId'
      GO
      
      EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'姓名' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Student', @level2type=N'COLUMN',@level2name=N'Name'
      GO
      
      EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'性別' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Student', @level2type=N'COLUMN',@level2name=N'Gender'
      GO
      
      EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'年齡' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Student', @level2type=N'COLUMN',@level2name=N'Age'
      GO
      
      EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'出生日期' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Student', @level2type=N'COLUMN',@level2name=N'Birthday'
      GO
      
      EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'身份證' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Student', @level2type=N'COLUMN',@level2name=N'IdCard'
      GO
      
      EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'啟用' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Student', @level2type=N'COLUMN',@level2name=N'Enabled'
      GO
      
      EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'創建時間' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Student', @level2type=N'COLUMN',@level2name=N'CreationTime'
      GO
      
      EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'創建人標識' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Student', @level2type=N'COLUMN',@level2name=N'CreatorId'
      GO
      
      EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'最后修改時間' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Student', @level2type=N'COLUMN',@level2name=N'LastModificationTime'
      GO
      
      EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'最后修改人標識' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Student', @level2type=N'COLUMN',@level2name=N'LastModifierId'
      GO
      
      EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'是否刪除' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Student', @level2type=N'COLUMN',@level2name=N'IsDeleted'
      GO
      
      EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'版本號' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Student', @level2type=N'COLUMN',@level2name=N'Version'
      GO
      
      EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'擴展' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Student', @level2type=N'COLUMN',@level2name=N'ExtraProperties'
      GO
      
      EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'學生' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Student'
      GO
      
      

      點擊 執行 按鈕, Student 示例表創建完成.

      創建 PostgreSql 代碼生成數據庫

      如果你使用 PostgreSql 數據庫,請按下面步驟創建 PostgreSql 示例數據庫和示例表.

      創建 Demo.Generator 數據庫

      打開 PostgreSql 客戶端,新建數據庫 Demo.Generator .

      create database "Demo.Generator"
          with owner admin;
      

      添加示例表 Student

      運行下面Sql之前先切換到 Demo.Generator 數據庫.

      create table "Student"
      (
          "StudentId"            uuid         not null
              constraint "PK_Student"
                  primary key,
          "Name"                 varchar(200) not null,
          "Gender"               integer,
          "Age"                  integer,
          "Birthday"             timestamp with time zone,
          "IdCard"               varchar(50),
          "Enabled"              boolean      not null,
          "CreationTime"         timestamp with time zone,
          "CreatorId"            uuid,
          "LastModificationTime" timestamp with time zone,
          "LastModifierId"       uuid,
          "IsDeleted"            boolean      not null,
          "ExtraProperties"      text,
          "Version"              bytea
      );
      
      comment on table "Student" is '學生';
      
      comment on column "Student"."StudentId" is '學生標識';
      
      comment on column "Student"."Name" is '姓名';
      
      comment on column "Student"."Gender" is '性別';
      
      comment on column "Student"."Age" is '年齡';
      
      comment on column "Student"."Birthday" is '出生日期';
      
      comment on column "Student"."IdCard" is '身份證';
      
      comment on column "Student"."Enabled" is '啟用';
      
      comment on column "Student"."CreationTime" is '創建時間';
      
      comment on column "Student"."CreatorId" is '創建人標識';
      
      comment on column "Student"."LastModificationTime" is '最后修改時間';
      
      comment on column "Student"."LastModifierId" is '最后修改人標識';
      
      comment on column "Student"."IsDeleted" is '是否刪除';
      
      comment on column "Student"."ExtraProperties" is '擴展屬性';
      
      comment on column "Student"."Version" is '版本號';
      
      alter table "Student"
          owner to admin;
      
      

      創建 MySql 代碼生成數據庫

      如果你使用 MySql 數據庫,請按下面步驟創建 MySql 示例數據庫和示例表.

      創建 Demo.Generator 數據庫

      打開 MySql 客戶端,新建數據庫 Demo.Generator .

      create database `Demo.Generator`
      

      添加示例表 Student

      運行下面Sql之前先切換到 Demo.Generator 數據庫.

      create table Student
      (
          StudentId            char(36) charset ascii not null comment '學生標識'
              primary key,
          Name                 varchar(200)           not null comment '姓名',
          Gender               int                    null comment '性別',
          Age                  int                    null comment '年齡',
          Birthday             datetime(6)            null comment '出生日期',
          IdCard               varchar(50)            null comment '身份證',
          Enabled              tinyint(1)             not null comment '啟用',
          CreationTime         datetime(6)            null comment '創建時間',
          CreatorId            char(36) charset ascii null comment '創建人標識',
          LastModificationTime datetime(6)            null comment '最后修改時間',
          LastModifierId       char(36) charset ascii null comment '最后修改人標識',
          IsDeleted            tinyint(1)             not null comment '是否刪除',
          ExtraProperties      longtext               null comment '擴展屬性',
          Version              longblob               null comment '版本號'
      )
          comment '學生';
      
      

      Web Api開發入門

      準備

      下載Util應用框架配套代碼生成項目,如果已下載,請拉取最新代碼進行更新.

      生成項目基架

      打開Util代碼生成項目解決方案 Util.Generator.sln .

      將項目 Util.Generators.Console 設置為啟動項目.

      Util.Generators.Console是一個控制臺程序,只需修改幾個簡單配置,即可開始生成代碼.

      打開 appsettings.json 配置文件.

      使用 Sql Server 生成代碼

      本小節使用 Sql Server 代碼生成數據庫.

      appsettings.json 配置文件默認使用 Sql Server 數據庫,連接字符串已經配置,如果與你的數據庫設置不同,請修改.

      按 F5 鍵啟動控制臺.

      生成完成.

      生成位置由 OutputPath 配置項 D:\Output 指定.

      打開D盤,進入Output目錄,可以看到生成的 Demo 項目.

      使用 PostgreSql 生成代碼

      本小節使用 PostgreSql 代碼生成數據庫.

      修改 appsettings.json 配置文件.

      DbType : PgSql , 這個配置項指定使用的代碼生成數據庫類型.

      TargetDbType: PgSql, 這個配置項指定項目使用的數據庫類型.

      ConnectionString: Server=127.0.0.1;User Id=admin;Password=admin;Database=Demo.Generator ,指定連接字符串

      修改 appsettings.json 配置文件后,需要重新生成項目,否則可能不生效.

      重新生成 Util.Generators.Console 項目, 按 F5 鍵啟動控制臺.

      生成完成.

      生成位置由 OutputPath 配置項 D:\Output 指定.

      打開D盤,進入Output目錄,可以看到生成的 Demo 項目.

      使用 MySql 生成代碼

      本小節使用 MySql 代碼生成數據庫.

      修改 appsettings.json 配置文件.

      DbType : MySql , 這個配置項指定使用的代碼生成數據庫類型.

      TargetDbType: MySql, 這個配置項指定項目使用的數據庫類型.

      ConnectionString: Server=127.0.0.1;User Id=root;Password=admin;Database=Demo.Generator;Port=3306;Charset=utf8 ,指定連接字符串

      修改 appsettings.json 配置文件后,需要重新生成項目,否則可能不生效.

      重新生成 Util.Generators.Console 項目, 按 F5 鍵啟動控制臺.

      生成完成.

      生成位置由 OutputPath 配置項 D:\Output 指定.

      打開D盤,進入Output目錄,可以看到生成的 Demo 項目.

      運行示例項目

      打開示例項目解決方案 Demo.sln.

      解決方案分層結構基于領域驅動設計(DDD)分層架構.

      DDD分層架構包含大量構造塊,對于大部分業務模塊,手工編寫這些構造塊是枯燥而低效的,使用代碼生成可以簡化基礎管道代碼的編寫.

      如果你對DDD一無所知,可以把它們當成三層架構使用即可.

      代碼生成以機械的單表方式生成CRUD操作,如果你的業務較為復雜,在生成后立即修改它們.

      你不應該依賴代碼生成器,通常只在項目初期創建項目基架,后續變更僅生成代碼片斷并手工合并到你的項目,而不是完全覆蓋.

      查看代碼生成質量

      下面來看看生成的代碼質量如何.

      打開 Student 實體類.

      每個實體,代碼生成模板會創建兩個文件,其中 .Base 結尾的文件用于放置屬性,另一個放置業務方法.

      對于簡單的實體類,可能沒有業務方法,你可以合并成一個文件.

      可以看到生成的代碼十分整潔,并已從必要的基類繼承,還包含了注釋和基礎驗證.

      運行Web Api項目

      打開 Demo.Api 項目下的 appsettings.Development 配置文件.

      如果你的代碼生成數據庫以 .Generator結尾,會幫你創建默認的開發數據庫連接字符串.

      對于本示例項目,開發數據庫名稱默認為 Demo .

      如果生成的連接字符串為空值,或需要修改參數,請自行配置連接字符串.

      DefaultConnection 是Web Api項目的連接字符串, TestConnection 用于Web Api項目的集成測試.

      按 F5 鍵 啟動 Demo.Api 項目.

      Util 使用 Entity Framework Core 作為主要的數據訪問框架.

      Web Api項目已經配置了數據庫遷移,不必手工輸入命令行,啟動時會自動運行命令.

      可以看到 Demo.Data.SqlServer 項目已經創建 Migrations 遷移目錄.

      數據庫也已經創建 Demo 數據庫.

      如果使用其它數據庫生成代碼,則與相應的數據庫保持一致,比如 Demo.Data.MySql .

      數據遷移完成,將打開 Swagger 頁面.

      下面我們使用 Swagger 調用 Web Api 創建一個學生.

      找到 POST /api/Student, 點擊 Try it out 按鈕.

      輸入下列Json數據, 點擊 Execute 按鈕.

      {
        "name": "張三",
        "gender": 0,
        "age": 18,
        "birthday": "2023-10-19T06:53:55.469Z",
        "idCard": "123",
        "enabled": true
      }
      

      Swagger返回操作成功消息.

      查詢數據庫 Student 表,可以看到已經插入成功.

      運行其它數據庫生成代碼的操作類似.

      后記

      Web Api已經運行起來,但只能通過Swagger操作,下一篇我們將把基于Ng Zorro組件庫的Angular UI運行起來.

      posted @ 2023-10-19 15:32  何鎮汐  閱讀(681)  評論(2)    收藏  舉報
      主站蜘蛛池模板: 国产成人高清亚洲综合| 国产成人黄色自拍小视频| 精品自拍偷拍一区二区三区| 国产精品一线二线三线区| 亚洲 日本 欧洲 欧美 视频| 国产无套内射又大又猛又粗又爽| 717午夜伦伦电影理论片| 亚洲暴爽av天天爽日日碰| 欧美在线精品一区二区三区| 国产av寂寞骚妇| 人妻少妇偷人精品一区| 国产激情无码一区二区APP| 欧美精品一区二区三区在线观看| 怡春院久久国语视频免费| 日韩精品一区二区三区在| a级亚洲片精品久久久久久久| 成人午夜免费无码视频在线观看 | 精品一区精品二区制服| 91在线国内在线播放老师 | 天堂v亚洲国产v第一次| 无码国产精品成人| 东莞市| 亚洲另类激情专区小说图片| 久久久亚洲欧洲日产国码农村| 国产精品视频一区不卡| 91亚洲国产三上悠亚在线播放 | 色综合久久综合香蕉色老大| 亚洲欧美综合精品成| 亚洲精品三区四区成人少| 国内精品自线在拍| 贵溪市| 国产女人看国产在线女人| 久久天天躁综合夜夜黑人鲁色| 性人久久久久| 国产精品一区在线蜜臀| 可以直接看的无码av| 99久久精品国产综合一区| 亚洲国产日韩一区三区| 亚洲日本韩国欧美云霸高清| 国产一区二区三区内射高清| 少妇高潮喷水惨叫久久久久电影|