.net core下配置访问数据库操作
2018-03-29 08:51
393 查看
配置读取
.net core下读取配置还是有点麻烦的,本身没有System.Configuration.dll,所以在进行配置前需要自行引用Microsoft.Extensions.Configuration,截图如下:
这样的话我们就可以配置读取的相关编码了,比如我们数据库的链接字符串,在appsettings.json添加对应的数据库配置:
"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");
数据库操作
数据库相关操作还是建议使用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方法可以很轻松的搞定的。比如下面几个例子:
//根据主键Id查询 using (var conn = DatabaseManager.GetConnection(DatabaseManager.DBName)) { await conn.OpenAsync(); return await conn.GetAsync<UserModel>(id); }
新增数据:
//新增 using (var conn = DatabaseManager.GetConnection(DatabaseManager.DBName)) { await conn.OpenAsync(); await conn.InsertAsync(entity); }
修改数据:
//修改 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)] 该字段是否可被写入
您可能感兴趣的文章:
相关文章推荐
- .net core下配置、数据库访问等操作实现
- mysql 5个常用操作,添加用户配置对应数据库,开启远程访问,修改密码
- Mybatis(二)以学生类配置为例演示在实体类中配置数据库操作——增删改查
- 通过Spring Boot配置动态数据源访问多个数据库的实现代码
- Linux C 访问数据库操作
- MySQL---数据库从入门走向大神系列(七)-Java访问数据库配置及简单使用方法execute
- qtp,VBScript操作MySQL数据库时,关于多次访问数据库的问题,数据集如何处理
- zend framework配置操作数据库
- 使用Oracle DBLink进行数据库之间对象的访问操作
- VS2010添加类失败问题,弹出错误框,提示 CodeModel操作失败,无法访问标记数据库
- zend framework配置操作数据库实例分析
- 配置OpenLDAP,Java操作LDAP,DBC-LDAP进访问
- SQL Server跨数据库访问及分布式事务的使用及配置
- DotNet访问和操作数据库
- rabbitmq安装后的配置操作--远程访问以及开启web控制台
- PHP的Yii框架中使用数据库的配置和SQL操作实例教程
- Yii2.0-advanced-10—数据库操作6(读写分离-数据库主从配置)
- Hibernate入门BLOG [二、封装拿到数据库配置session对象、并且执行操作]
- 配置Oracle访问SQL地理数据库
- JSP培训(10)——使用JavaBean封装对数据库的访问、连接池的配置和使用