.net core下配置訪問(wèn)數(shù)據(jù)庫(kù)操作
配置讀取
.net core下讀取配置還是有點(diǎn)麻煩的,本身沒(méi)有System.Configuration.dll,所以在進(jìn)行配置前需要自行引用Microsoft.Extensions.Configuration,截圖如下:

這樣的話我們就可以配置讀取的相關(guān)編碼了,比如我們數(shù)據(jù)庫(kù)的鏈接字符串,在appsettings.json添加對(duì)應(yīng)的數(shù)據(jù)庫(kù)配置:
"ConnectionStrings": {
"TestDb": "server=localhost;port=3306;database=mytest;user=test;password=123456;charset=utf8;"
}
讀取配置相關(guān)代碼如下:
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;
}
}
這樣就可以直接讀取對(duì)應(yīng)的配置信息啦:
string CONNECTION_STRING = AppSetting.GetConfig("ConnectionStrings:TestDb");
數(shù)據(jù)庫(kù)操作
數(shù)據(jù)庫(kù)相關(guān)操作還是建議使用Dapper以及Dapper.Contrib,比較輕量,也比較方便。
Dapper相信大家還是比較熟悉的,這里簡(jiǎn)單說(shuō)下Dapper.Contrib,基于Dapper的擴(kuò)展方法,封裝了如下方法:
- 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>();
這樣對(duì)應(yīng)你應(yīng)用的簡(jiǎn)單的CRUD方法可以很輕松的搞定的。比如下面幾個(gè)例子:
//根據(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);
}
需要注意的是,需要給對(duì)應(yīng)的實(shí)體加上特性:
[Table("User")]
public class UserModel
{
[Key]
public int Id { get; set; }
public string UserName { get; set; }
public string Remark { get; set; }
}
- [Table("Tablename")] 標(biāo)識(shí)對(duì)應(yīng)的表名
- [Key] 對(duì)應(yīng)的主鍵
- [ExplicitKey] 如果主鍵不是自增長(zhǎng)的,用此標(biāo)識(shí)
- [Write(true/false)] 該字段是否可被寫(xiě)入
- Asp.Net Core中創(chuàng)建多DbContext并遷移到數(shù)據(jù)庫(kù)的步驟
- 在.NetCore(C#)中使用ODP.NET Core+Dapper操作Oracle數(shù)據(jù)庫(kù)
- 淺談如何使用vb.net從數(shù)據(jù)庫(kù)中提取數(shù)據(jù)
- asp.net實(shí)現(xiàn)存儲(chǔ)和讀取數(shù)據(jù)庫(kù)圖片
- .NET Core Dapper操作mysql數(shù)據(jù)庫(kù)的實(shí)現(xiàn)方法
- C# Ado.net實(shí)現(xiàn)讀取SQLServer數(shù)據(jù)庫(kù)存儲(chǔ)過(guò)程列表及參數(shù)信息示例
- ASP.NET Core2讀寫(xiě)InfluxDB時(shí)序數(shù)據(jù)庫(kù)的方法教程
- ASP.NET WebAPI連接數(shù)據(jù)庫(kù)的方法
- .net core利用orm如何操作mysql數(shù)據(jù)庫(kù)詳解
- .net數(shù)據(jù)庫(kù)操作框架SqlSugar的簡(jiǎn)單入門(mén)
相關(guān)文章
使用aspnet_regiis.exe重新注冊(cè).NET Framework
本文主要介紹使用aspnet_regiis.exe重新注冊(cè).NET Framework的方法,簡(jiǎn)單實(shí)用,有需要的朋友拿去用吧。2016-05-05
國(guó)產(chǎn)化之銀河麒麟安裝.NetCore包管理器方式(步驟詳解)
這篇文章主要介紹了國(guó)產(chǎn)化之銀河麒麟安裝.NetCore-包管理器方式,本文給大家分享安裝步驟及安裝命令,對(duì)銀河麒麟安裝.NetCore相關(guān)知識(shí)感興趣的朋友一起看看吧2022-03-03
Asp.Net 生成靜態(tài)頁(yè)并實(shí)現(xiàn)分頁(yè)效果
Asp.Net 生成靜態(tài)頁(yè)并實(shí)現(xiàn)分頁(yè)效果的代碼,需要的朋友可以參考下。2010-04-04
Asp.NET 隨機(jī)碼生成基類(隨機(jī)字母,隨機(jī)數(shù)字,隨機(jī)字母+數(shù)字)
對(duì)于需要用asp.net 字母,隨機(jī)數(shù)字,隨機(jī)字母+數(shù)字生成隨機(jī)碼的朋友用的到2008-11-11
Asp.Net 通用數(shù)據(jù)操作類 (附通用數(shù)據(jù)基類)
以前經(jīng)常用php的數(shù)據(jù)操作類,這次的asp.net數(shù)據(jù)操作類,是個(gè)方法2008-07-07
此頁(yè)的狀態(tài)信息無(wú)效,可能已損壞 的處理辦法及原因分析
此頁(yè)的狀態(tài)信息無(wú)效,可能已損壞 的處理辦法及原因分析,需要的朋友可以參考一下2013-06-06
.Net Core簡(jiǎn)單使用Mvc內(nèi)置的Ioc
這篇文章主要為大家詳細(xì)介紹了.Net Core簡(jiǎn)單使用Mvc內(nèi)置的Ioc,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-03-03
簡(jiǎn)單談?wù)?NET Core跨平臺(tái)開(kāi)發(fā)
本文給大家詳細(xì)介紹了如何使用.NET Core進(jìn)行跨平臺(tái)開(kāi)發(fā),包含簡(jiǎn)單的環(huán)境架設(shè)以及配置,以及使用vs進(jìn)行編譯運(yùn)行項(xiàng)目和注意事項(xiàng),有需要的小伙伴可以參考下2016-07-07

