建立乙個簡單的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...