[LINQ2Dapper]最完整Dapper To Linq框架---基础查询

(一)Model实体类 

 实体类层需要安装Kogel.Dapper.Extension表名字段特性。[更多特性详情请点击]

using Kogel.Dapper.Extension.Attributes;

 public class users
    {
        /// <summary>
        /// 用户id(特性Identity标识该字段为主键)
        /// </summary>    
        [Identity]
        public int id { get; set; }

        /// <summary>
        /// code
        /// </summary>    
        public string code { get; set; }

        /// <summary>
        /// 用户名称
        /// </summary>    
        public string name { get; set; }

        /// <summary>
        /// 创建方式(1自定义角色 2通用角色)
        /// </summary>    
        public int createWay { get; set; }

        /// <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>();
翻页查询
 

//翻页查询第一页,10条数据
var list = conn.QuerySet<users>()
.OrderBy(x => x.createDate)
.PageList(1, 10);

//翻页连表查询返回dynamic
var list1 = conn.QuerySet<users>()
.Join<users, project_Role>(x => x.roleId, y => y.id)
.OrderBy(x => x.createDate)
.PageList<dynamic>(1, 10);
多表任意联查         

 var users = conn.QuerySet<users>()
                        .Join<users, project_Role>((a, b) => a.roleId == b.id)
                        .Where<users, project_Role>((a, b) => a.id == 3 && b.id == 3)
                        .Get<dynamic>();
 

 Kogel.Dapper还支持linq和sql同时使用

已完成更加复杂查询条件或者连表关系,[详情请点击此处]。

 

完整Demo可以去Github上下载:

https://github.com/a935368322/Kogel.Dapper.Test

 


---------------------

[LINQ2Dapper]最完整Dapper To Linq框架---基础查询

上一篇:手机web app开发笔记


下一篇:iOS OpenCV 特定单一颜色识别并框出来