《ABP框架入門 第二章》簡單的查詢Demo

2021-08-25 05:54:35 字數 2172 閱讀 9196

建立乙個簡單的curd demo,實現對乙個person的查詢,後續還有增刪改。

step 1:建立實體類(dto)

把實體類寫在core專案中,因為實體是領域層的一部分(core即為領域層)。

step 2:執行資料遷移(code first)

在如下目錄下,

找到這個檔案

在buildmodel方法中新增以下**:

modelbuilder.entity("sojsdemo.demo.person", b =>

);

然後在pm中執行

protected override void up(migrationbuilder migrationbuilder)

,//約束,這裡只有乙個主鍵約束

constraints: table =>);}

protected override void down(migrationbuilder migrationbuilder)

然後執行update-database,開啟sqlserver資源管理器,找到你的資料庫,可以看到已經生成了對應的表:

step 3: respository層(倉儲層)

在如下位置建立person的倉儲介面ipersonrepository:

接下來實現介面,將寫在entityframeworkcore專案中,這是我們的資料持久化層,**如下:

public class personrepository : sojsdemorepositorybase, ipersonrepository

public listgetallperson()

}

這裡繼承了乙個框架的基類,其中以及幫我們實現了一些常用的curd方法,今後如果有通用方法,也可以寫在這個類中。

關於訪問級別的提醒,請把類定義為public

其中dto為應用層的資料傳輸物件,對應為業務層的model,內容如下:

public class getallpersonoutput

public int id

public string name

}

然後分別是應用服務介面和實現類:

///

///

return resultset;}}

到此,demo的後端已經完成,我們提供了乙個web api介面供前端呼叫獲取資料,swaggerui顯示如下:

過兩天我看一下vue.js基礎,寫乙個前端呼叫這個api的demo。

ok總結一下:

首先建立領域層的model,並且在此定義irepository介面。之後我們在entityframeworkcore中實現我們剛剛定義的irepository介面。到此我們領域模型這裡完成。然後去寫應用服務層,首先定義需要的業務傳輸物件,與領域層的model對應(當然有特殊業務需求時是不同的),然後是應用服務介面與實現類。到此乙個簡單的demo完成了。

ps:關於web api,是框架自動幫我們生成的,官方文件的**如下:

這句**對於在我們的demo中是:

這裡的註冊也是由框架去完成的,感興趣可以檢視官方文件

《Qt Creator快速入門》第二章總結

1.第1,2和22行是預處理指令,避免該標頭檔案多重包含。命名空間ui中的前置宣告是為了加快編譯速度,也可以避免在乙個標頭檔案中隨意包含其他標頭檔案而產生錯誤。這並不需要該類的完整定義,所以可以使用前置宣告。這樣就不用在這裡新增ui hellodialog.h的標頭檔案包含,而可以將其放到hello...

SpringBoot入門 第二章 日誌配置

springboot預設整合了slf4j日誌。xml version 1.0 encoding utf 8 格式化輸出 date表示日期,thread表示執行緒名,5level 級別從左顯示5個字元寬度 msg 日誌訊息,n是換行符 logger 表示 logger 名字最長36個字元 log pa...

第二章 簡單的查詢

算術運算子 1 查詢員工漲了50元工資之後的工資 姓名 入職日期 select sal 50,ename,hiredate,comm from emp 算術運算子優先順序 大於 括號的優先順序最大 2 查詢員工漲了50元工資之後的工資 和年薪 姓名 入職日期 select sal 50,sal 50...