EFCore+Mysql仓储层建设(分页、多字段排序、部分字段更新)
前沿
園子里已有挺多博文介紹了EFCore+Mysql/MSSql如何進行使用,但實際開發(fā)不會把EF層放在Web層混合起來,需要多個項目配合結(jié)構(gòu)清晰的進行分層工作,本文根據(jù)個人實踐經(jīng)驗總結(jié)將各個項目進行分層,僅供想自己搭建,包含數(shù)據(jù)倉儲以及分頁多字段排序。
目錄結(jié)構(gòu)
1.實體層(EF)搭建
1.1添加Nuget包
1.2添加實體
1.3構(gòu)造DbContext
1.4數(shù)據(jù)遷移生成數(shù)據(jù)庫
2.倉儲層搭建
2.1添加Nuget包
2.2添加必要的支持IEnumerable<T>和IQueryable<T> 的OrderBy字符串支持類LinqExtensions
2.3構(gòu)造RepositoryBase<T>
2.4添加Table文件夾,添加SysUserRepository
2.5添加工作單元UnitOfWork
3.WebApi項目測試
3.1注入EF
3.2測試
4.Github項目地址
?
正文
1.實體層(EF)搭建
新建.NetCore類庫項目Entity,本人使用的是2.0的SDK
1.1添加Nuget包
PM> Install-Package Microsoft.AspNetCore.All -version 2.0.9PM> Install-Package Pomelo.EntityFrameworkCore.MySql -version 2.0.11.2添加實體
父類EntityBase
實體類SysUser
1.3構(gòu)造DbContext
在這有重寫OnConfiguring方法,如果沒有構(gòu)造數(shù)據(jù)庫鏈接字符串的話則到appsettings.json中去取,注意將appsettings.json文件始終復制
?appsettings.json
{
? "ConnectionStrings": {
? ? "SQLConnection": "server=127.0.0.1;database=eftest;userid=root;pwd=123456;port=3306;sslmode=none;"
? },
? "server.urls": "http://localhost:5001" //監(jiān)聽端口配置,可多個
}
1.4數(shù)據(jù)遷移生成數(shù)據(jù)庫
打開PM選擇默認項目Entity
輸入
PM> Add-Migration init若提示The configuration file 'appsettings.json' was not found and is not optional. The physical path is 'E:\VS項目\EFTest\Entity\bin\Debug\netcoreapp2.0\appsettings.json'.
則為沒檢測到appsettings.json,需要文件更改屬性為復制
提示后進行更新數(shù)據(jù)庫,如下為更新成功。
PM> update-database?
?最后Entity項目內(nèi)容如下
?
2.倉儲層搭建
新建.NetCore類庫項目Repository并引用項目Entity
2.1添加Nuget包
PM> Install-Package Microsoft.EntityFrameworkCore -version 2.0.3PM> Install-Package LinqKit.Microsoft.EntityFrameworkCore -version 1.1.15?
2.2添加必要的支持IEnumerable<T>和IQueryable<T> 的OrderBy字符串支持類LinqExtensions
以及分頁支持類PageData<T>
2.3構(gòu)造RepositoryBase<T>
2.4添加Table文件夾,添加SysUserRepository
2.5添加工作單元UnitOfWork
這樣倉儲層就構(gòu)造完成了,篇幅已經(jīng)很長了,Service層就先不介紹了。
3.WebApi項目測試
新建.NetCore的項目的Web應用程序ApiTest,選擇webapi方式,并引用Entity和Repository項目
3.1注入EF
3.2測試
測試結(jié)果:
?
倉儲分頁查詢 測試
原文地址:https://www.cnblogs.com/jomzhang/p/10245077.html
.NET社區(qū)新聞,深度好文,歡迎訪問公眾號文章匯總 http://www.csharpkit.com
總結(jié)
以上是生活随笔為你收集整理的EFCore+Mysql仓储层建设(分页、多字段排序、部分字段更新)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Entity Framework 6.3
- 下一篇: Docker最全教程——数据库容器化(十