支持.net framework4.6.1及以上git
支持.net core2.0及以上github
应用层须要引用包Kogel.Dapper.Extension.MsSql(若是数据库是Oracle则引用Kogel.Dapper.Extension.Oracle),Nuget上能够下载安装。sql
实体类层须要安装Kogel.Dapper.Extension表名字段特性。数据库
using Kogel.Dapper.Extension.Attributes;app
public class users
{
/// <summary>
/// 用户id(特性Identity标识该字段为主键,[更多特性详情请点击])
/// </summary>
[Identity]
public int id { get; set; }框架
/// <summary>
/// code
/// </summary>
public string code { get; set; }ui
/// <summary>
/// 用户名称
/// </summary>
public string name { get; set; }.net
/// <summary>
/// 建立方式(1自定义角色 2通用角色)
/// </summary>
public int createWay { get; set; }code
/// <summary>
/// 建立时间
/// </summary>
public DateTime createDate { get; set; }对象
/// <summary>
/// 建立人
/// </summary>
public string createUsers { get; set; }
/// <summary>
/// 角色id
/// </summary>
public int roleId { get; set; }
首先添加命名空间
using Kogel.Dapper.Extension.MsSql;
能够经过数据库链接对象点出扩展方法,例如
var conn = new SqlConnection("数据库链接字符串");
使用完记得释放链接对象,能够经过using或者 conn.Dispose();
查询
var users = conn.QuerySet<users>().Where(x => x.code != "1").Get();
模糊查询
var users1 = conn.QuerySet<users>().Where(x => x.name.Contains("Y")).Get();
修改
var users=new users();
users.name = Guid.NewGuid().ToString();
users.createDate = DateTime.Now;
int result = conn.CommandSet<users>().Where(x => x.id == 4).Update(users);
修改查询
var users = conn.QuerySet<users>().Where(x => x.name.Contains("Y")).UpdateSelect(x => new users { name = "Y11" }).FirstOrDefault();
新增
int result = conn.CommandSet<users>().Insert(new users() { code = Guid.NewGuid().ToString(), name = "test", createWay = 1, createDate = DateTime.Now, roleId = 2 });
删除
int result = conn.CommandSet<users>().Where(x => x.roleId == 2 && x.name == users2.name).Delete();
若是想使用事务能够经过
conn.CommandSet<users>(事务对象)
使用事务必须先手动打开数据库:conn.Open();
连表查询
Join<主表,副表>(主表关联字段,副表关联字段)
var list = conn.QuerySet<users>().Where(x => x.code != "1").Join<users, project_Role>(x => x.roleId, y => y.id).ToList();
连表查询能够渲染成指定实体类,例如动态类型(dynamic)
var list = conn.QuerySet<users>().Where(x => x.code != "1").Join<users, project_Role>(x => x.roleId, y => y.id).ToList<dynamic>();
翻页查询
var list = conn.QuerySet<users>().OrderBy(x => x.createDate).PageList(1, 10);
//翻页连表查询返回dynamic
var list4 = conn.QuerySet<users>().Join<users, project_Role>(x => x.roleId, y => y.id).OrderBy(x => x.createDate).PageList<dynamic>(1, 10);
Kogel.Dapper还支持linq和sql同时使用
已完成更加复杂查询条件或者连表关系,[详情请点击此处]。
完整Demo能够去Github上下载:
https://github.com/a935368322/Kogel.Dapper.Test
若有问题也能够加QQ群讨论:
技术群 710217654
框架开源,能够加群下载源码