欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

.net core下配置訪問數(shù)據(jù)庫操作

 更新時間:2018年03月29日 08:51:15   作者:Bug生活2048  
本篇文章給大家詳細分享了在.net core下配置訪問數(shù)據(jù)庫的相關操作過程以及代碼實現(xiàn)過程,有興趣的朋友參考下。

配置讀取

.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)] 該字段是否可被寫入

相關文章

最新評論