.net core下配置訪問數(shù)據(jù)庫操作
配置讀取
.net core下讀取配置還是有點麻煩的,本身沒有System.Configuration.dll,所以在進行配置前需要自行引用Microsoft.Extensions.Configuration,截圖如下:
這樣的話我們就可以配置讀取的相關編碼了,比如我們數(shù)據(jù)庫的鏈接字符串,在appsettings.json添加對應的數(shù)據(jù)庫配置:
"ConnectionStrings": { "TestDb": "server=localhost;port=3306;database=mytest;user=test;password=123456;charset=utf8;" }
讀取配置相關代碼如下:
public class AppSetting { private static readonly object objLock = new object(); private static AppSetting instance = null; private IConfigurationRoot Config { get; } private AppSetting() { var builder = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true); Config = builder.Build(); } public static AppSetting GetInstance() { if (instance == null) { lock (objLock) { if (instance == null) { instance = new AppSetting(); } } } return instance; } public static string GetConfig(string name) { return GetInstance().Config.GetSection(name).Value; } }
這樣就可以直接讀取對應的配置信息啦:
string CONNECTION_STRING = AppSetting.GetConfig("ConnectionStrings:TestDb");
數(shù)據(jù)庫操作
數(shù)據(jù)庫相關操作還是建議使用Dapper以及Dapper.Contrib,比較輕量,也比較方便。
Dapper相信大家還是比較熟悉的,這里簡單說下Dapper.Contrib,基于Dapper的擴展方法,封裝了如下方法:
- T Get<T>(id);
- IEnumerable<T> GetAll<T>();
- int Insert<T>(T obj);
- int Insert<T>(Enumerable<T> list);
- bool Update<T>(T obj);
- bool Update<T>(Enumerable<T> list);
- bool Delete<T>(T obj);
- bool Delete<T>(Enumerable<T> list);
- bool DeleteAll<T>();
這樣對應你應用的簡單的CRUD方法可以很輕松的搞定的。比如下面幾個例子:
//根據(jù)主鍵Id查詢 using (var conn = DatabaseManager.GetConnection(DatabaseManager.DBName)) { await conn.OpenAsync(); return await conn.GetAsync<UserModel>(id); }
新增數(shù)據(jù):
//新增 using (var conn = DatabaseManager.GetConnection(DatabaseManager.DBName)) { await conn.OpenAsync(); await conn.InsertAsync(entity); }
修改數(shù)據(jù):
//修改 using (var conn = DatabaseManager.GetConnection(DatabaseManager.DBName)) { await conn.OpenAsync(); await conn.UpdateAsync(entity); }
需要注意的是,需要給對應的實體加上特性:
[Table("User")] public class UserModel { [Key] public int Id { get; set; } public string UserName { get; set; } public string Remark { get; set; } }
- [Table("Tablename")] 標識對應的表名
- [Key] 對應的主鍵
- [ExplicitKey] 如果主鍵不是自增長的,用此標識
- [Write(true/false)] 該字段是否可被寫入
- Asp.Net Core中創(chuàng)建多DbContext并遷移到數(shù)據(jù)庫的步驟
- 在.NetCore(C#)中使用ODP.NET Core+Dapper操作Oracle數(shù)據(jù)庫
- 淺談如何使用vb.net從數(shù)據(jù)庫中提取數(shù)據(jù)
- asp.net實現(xiàn)存儲和讀取數(shù)據(jù)庫圖片
- .NET Core Dapper操作mysql數(shù)據(jù)庫的實現(xiàn)方法
- C# Ado.net實現(xiàn)讀取SQLServer數(shù)據(jù)庫存儲過程列表及參數(shù)信息示例
- ASP.NET Core2讀寫InfluxDB時序數(shù)據(jù)庫的方法教程
- ASP.NET WebAPI連接數(shù)據(jù)庫的方法
- .net core利用orm如何操作mysql數(shù)據(jù)庫詳解
- .net數(shù)據(jù)庫操作框架SqlSugar的簡單入門
相關文章
asp.net DropDownList實現(xiàn)二級聯(lián)動效果
這篇文章主要介紹了asp.net DroDownList實現(xiàn)二級聯(lián)動效果的相關資料,需要的朋友可以參考下2016-02-02Ajax Throws Sys.WebForms.PageRequestManagerErrorException wi
注冊腳本: ScriptManager.RegisterStartupScript(this, typeof(string), "Message", "alert('error message');", true); 即可解決,困惑了我一下午。2008-11-11asp.net?core?+?jenkins?實現(xiàn)自動化發(fā)布功能
這篇文章主要介紹了asp.net?core?+?jenkins?實現(xiàn)自動化發(fā)布功能,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-04-04IIS上部署Asp.net core Webapi的實現(xiàn)步驟
ASP.NET Core Web API是構建RESTful應用程序的理想平臺,本文主要介紹了IIS上部署Asp.net core Webapi的實現(xiàn)步驟,具有一定的參考價值,感興趣的可以了解一下2024-07-07Community Server專題一:概述Community Server
Community Server專題一:概述Community Server...2007-03-03asp.net fileupload控件上傳文件與多文件上傳
這篇文章主要介紹了asp.net fileupload控件上傳文件的方法,fileupload控件多文件上傳,以及fileupload上傳時實現(xiàn)文件驗證的方法,需要的朋友可以參考下2014-11-11