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

此例子是使用LINQ2Dapper封装,效率优于EntityFramwork,而且支持.NetFramework和.NetCore框架,只依赖于Dapper

支持.net framework4.6.1及以上git

支持.net core2.0及以上github

     应用层须要引用包Kogel.Dapper.Extension.MsSql(若是数据库是Oracle则引用Kogel.Dapper.Extension.Oracle),Nuget上能够下载安装。sql

     实体类层须要安装Kogel.Dapper.Extension表名字段特性。数据库

(一)Model实体类

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

框架开源,能够加群下载源码

相关文章
相关标签/搜索