.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的簡單入門
相關文章
使用aspnet_regiis.exe重新注冊.NET Framework
本文主要介紹使用aspnet_regiis.exe重新注冊.NET Framework的方法,簡單實用,有需要的朋友拿去用吧。2016-05-05
國產(chǎn)化之銀河麒麟安裝.NetCore包管理器方式(步驟詳解)
這篇文章主要介紹了國產(chǎn)化之銀河麒麟安裝.NetCore-包管理器方式,本文給大家分享安裝步驟及安裝命令,對銀河麒麟安裝.NetCore相關知識感興趣的朋友一起看看吧2022-03-03
Asp.Net 生成靜態(tài)頁并實現(xiàn)分頁效果
Asp.Net 生成靜態(tài)頁并實現(xiàn)分頁效果的代碼,需要的朋友可以參考下。2010-04-04
Asp.NET 隨機碼生成基類(隨機字母,隨機數(shù)字,隨機字母+數(shù)字)
對于需要用asp.net 字母,隨機數(shù)字,隨機字母+數(shù)字生成隨機碼的朋友用的到2008-11-11
Asp.Net 通用數(shù)據(jù)操作類 (附通用數(shù)據(jù)基類)
以前經(jīng)常用php的數(shù)據(jù)操作類,這次的asp.net數(shù)據(jù)操作類,是個方法2008-07-07
此頁的狀態(tài)信息無效,可能已損壞 的處理辦法及原因分析
此頁的狀態(tài)信息無效,可能已損壞 的處理辦法及原因分析,需要的朋友可以參考一下2013-06-06

