C\#중 Dapper 사용 강좌

17388 단어 C#Dapper
뭐 공부 해요?
Dapper 는 경량급 ORM 도구(Github)다.작은 프로젝트 에서 Entity Framework,NHibernate 를 사용 하여 빅 데이터 접근 및 관계 맵 을 처리 하면 닭 잡 는 칼 이 있 을 수 밖 에 없습니다.너 는 또 ORM 이 시간 을 절약 하고 힘 을 절약 할 수 있다 고 생각 하 니,이때 Dapper 는 너의 두 가지 선택 이 될 것 이다.
2.Dapper 의 장점
경 량SqlMapper.cs 파일 이 하나 있 습 니 다.컴 파일 후 40K 의 아주 작은 Dll 입 니 다속도 가 빠르다.Dapper 의 속 도 는 IDataReader 에 가 깝 고 목록 의 데 이 터 는 DataTable 을 초과 합 니 다다양한 데이터 베 이 스 를 지원 합 니 다.Dapper 는 sqlite,sqlce,firebird,Oacle,MySQL,PostgreSQL 및 SQL Server 를 포함 한 모든 Ado.net Providers 에서 작업 할 수 있 습 니 다.
4.567917.1 대 1,1 대 다,다 대 다 등 여러 가지 관 계 를 나 타 낼 수 있다성능 이 높다.Emit 반사 IDataReader 의 시퀀스 대기 열 을 통 해 대상 을 신속하게 얻 고 생 성하 여 성능 이 좋 습 니 다FrameWork 2.0,3.0,3.5,4.0,4.5 지원
4.567917.Dapper 문법 은 매우 간단 하 다.그리고 데이터 베 이 스 를 옮 길 필요 가 없습니다3.사용 방법
1.NuGet 패키지 Dapper 추가
  
2.설정 파일 에 데이터베이스 연결 문자열 추가

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8"/>
  </startup>
  <connectionStrings>
    <add name="MyStrConn" connectionString="Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=DHR_DB;Integrated Security=True" />
  </connectionStrings>
</configuration>
3.DapperTools.cs 추가(추가,대량 추가,삭제,대량 삭제,수정,대량 수정,조회,in 작업,다 중 구문 작업)

// <copyright file="DapperTools.cs" company="PlaceholderCompany">
// Copyright (c) PlaceholderCompany. All rights reserved.
// </copyright>

namespace CSharpStudy
{
    using System;
    using System.Collections.Generic;
    using System.Configuration;
    using System.Data;
    using System.Data.SqlClient;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using Dapper;

    internal class DapperTools
    {
        public static string ConnectionString = ConfigurationManager.ConnectionStrings["MyStrConn"].ConnectionString;

        /// <summary>
        ///   .
        /// </summary>
        /// <typeparam name="T">    .</typeparam>
        /// <param name="sql">  sql    .</param>
        /// <param name="t">      .</param>
        /// <returns>int.</returns>
        public static int Add<T>(string sql, T t)
            where T : class
        {
            using (IDbConnection connection = new SqlConnection(ConnectionString))
            {
                return connection.Execute(sql, t);
            }
        }

        /// <summary>
        ///     .
        /// </summary>
        /// <typeparam name="T">    .</typeparam>
        /// <param name="sql">  sql    .</param>
        /// <param name="t">     .</param>
        /// <returns>int.</returns>
        public static int Add<T>(string sql, List<T> t)
            where T : class
        {
            using (IDbConnection connection = new SqlConnection(ConnectionString))
            {
                return connection.Execute(sql, t);
            }
        }

        /// <summary>
        ///   .
        /// </summary>
        /// <typeparam name="T">    .</typeparam>
        /// <param name="sql">  sql    .</param>
        /// <param name="t">      .</param>
        /// <returns>int.</returns>
        public static int Delete<T>(string sql, T t)
              where T : class
        {
            using (IDbConnection connection = new SqlConnection(ConnectionString))
            {
                return connection.Execute(sql, t);
            }
        }

        /// <summary>
        ///     .
        /// </summary>
        /// <typeparam name="T">    .</typeparam>
        /// <param name="sql">  sql    .</param>
        /// <param name="t">     .</param>
        /// <returns>int.</returns>
        public static int Delete<T>(string sql, List<T> t)
              where T : class
        {
            using (IDbConnection connection = new SqlConnection(ConnectionString))
            {
                return connection.Execute(sql, t);
            }
        }

        /// <summary>
        ///   .
        /// </summary>
        /// <typeparam name="T">    .</typeparam>
        /// <param name="sql">  sql    .</param>
        /// <param name="t">      .</param>
        /// <returns>int.</returns>
        public static int Update<T>(string sql, T t)
              where T : class
        {
            using (IDbConnection connection = new SqlConnection(ConnectionString))
            {
                return connection.Execute(sql, t);
            }
        }

        /// <summary>
        ///     .
        /// </summary>
        /// <typeparam name="T">    .</typeparam>
        /// <param name="sql">  sql    .</param>
        /// <param name="t">     .</param>
        /// <returns>int.</returns>
        public static int Update<T>(string sql, List<T> t)
              where T : class
        {
            using (IDbConnection connection = new SqlConnection(ConnectionString))
            {
                return connection.Execute(sql, t);
            }
        }

        /// <summary>
        ///   .
        /// </summary>
        /// <typeparam name="T">    .</typeparam>
        /// <param name="sql">  sql    .</param>
        /// <returns>   .</returns>
        public static List<T> Query<T>(string sql)
             where T : class
        {
            using (IDbConnection connection = new SqlConnection(ConnectionString))
            {
                return connection.Query<T>(sql).ToList();
            }
        }

        /// <summary>
        ///       .
        /// </summary>
        /// <typeparam name="T">    .</typeparam>
        /// <param name="sql">  sql    .</param>
        /// <param name="t">     .</param>
        /// <returns> .</returns>
        public static T Query<T>(string sql, T t)
             where T : class
        {
            using (IDbConnection connection = new SqlConnection(ConnectionString))
            {
                return connection.Query<T>(sql, t).SingleOrDefault();
            }
        }

        /// <summary>
        ///    in  .
        /// </summary>
        /// <typeparam name="T">    .</typeparam>
        /// <param name="sql">  sql    .</param>
        /// <returns>   .</returns>
        public static List<T> Query<T>(string sql, int[] ids)
            where T : class
        {
            using (IDbConnection connection = new SqlConnection(ConnectionString))
            {
                return connection.Query<T>(sql, new { ids }).ToList();
            }
        }

        /// <summary>
        ///      .
        /// </summary>
        /// <typeparam name="T">    .</typeparam>
        /// <param name="sql">  sql    .</param>
        public static void QueryMultiple(string sql)
        {
            using (IDbConnection connection = new SqlConnection(ConnectionString))
            {
                var multiReader = connection.QueryMultiple(sql);
                var userInfo = multiReader.Read<UserInfo>();
                var student = multiReader.Read<Student>();

                multiReader.Dispose();
            }
        }
    }
}
4.테스트 클래스 Student.cs,User Info 를 추가 합 니 다.표 데이터 자체 추가

 public class Student
    {
        public int Id { get; set; }

        public string Name { get; set; }

        public int Age { get; set; }

        public string Memo { get; set; }

        public DateTime CreateTime { get; set; }

        public DateTime UpdateTime { get; set; }
    }

public class UserInfo
    {
        public int Id { get; set; }

        public string Name { get; set; }

        public int Age { get; set; }

        public string Memo { get; set; }

        public DateTime CreateTime { get; set; }

        public DateTime UpdateTime { get; set; }
    }
5.호출 방법

//-----------------------------------------------------------------------
// <copyright file="Program.cs" company="PlaceholderCompany">
// Copyright (c) PlaceholderCompany. All rights reserved.
// </copyright>
// <author>John Doe</author>
//-----------------------------------------------------------------------

namespace CSharpStudy
{
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using Dapper;

    internal class Program
    {
        private static void Main(string[] args)
        {
            // --------------  --------------
            // UserInfo user = new UserInfo();
            // user.Name = "  ";
            // user.Age = 10;
            // user.Memo = "    ";
            // user.CreateTime = DateTime.Now;

            // string sql = "Insert into UserInfo(Name,Age,Memo,CreateTime) values (@name, @Age, @Memo,@CreateTime)";
            // int result = DapperTools.Add<UserInfo>(sql, user);
            // if (result > 0)
            // {
            //     Console.WriteLine("    ");
            //     Console.ReadKey();
            // }

            // --------------    --------------
            // UserInfo user = new UserInfo();
            // user.Name = "  ";
            // user.Age = 50;
            // user.Memo = "    ";
            // user.CreateTime = DateTime.Now;

            // UserInfo user2 = new UserInfo();
            // user2.Name = "   ";
            // user2.Age = 54;
            // user2.Memo = "    ";
            // user2.CreateTime = DateTime.Now;

            // List<UserInfo> list = new List<UserInfo>();
            // list.Add(user);
            // list.Add(user2);

            // string sql = "Insert into UserInfo(Name,Age,Memo,CreateTime) values (@name, @Age, @Memo,@CreateTime)";
            // int result = DapperTools.Add<UserInfo>(sql, list);
            // if (result > 0)
            // {
            //     Console.WriteLine("    ");
            //     Console.ReadKey();
            // }

            // --------------  --------------
            // UserInfo user = new UserInfo();
            // user.Id = 18;

            // string sql = "delete from UserInfo where Id=@Id";
            // int result = DapperTools.Delete<UserInfo>(sql, user);
            // if (result > 0)
            // {
            //     Console.WriteLine("    ");
            //     Console.ReadKey();
            // }

            // --------------    --------------
            // UserInfo user = new UserInfo();
            // user.Id = 15;

            // UserInfo user2 = new UserInfo();
            // user2.Id = 16;

            // List<UserInfo> list = new List<UserInfo>();
            // list.Add(user);
            // list.Add(user2);

            // string sql = "delete from UserInfo where Id=@Id";
            // int result = DapperTools.Delete<UserInfo>(sql, list);
            // if (result > 0)
            // {
            //     Console.WriteLine("    ");
            //     Console.ReadKey();
            // }

            // --------------  --------------
            // UserInfo user = new UserInfo();
            // user.Id = 14;
            // user.Name = "  ";

            // string sql = "update UserInfo set Name=@Name,UpdateTime=GETDATE() where Id=@ID";
            // int result = DapperTools.Update<UserInfo>(sql, user);
            // if (result > 0)
            // {
            //     Console.WriteLine("    ");
            //     Console.ReadKey();
            // }

            // --------------    --------------
            // UserInfo user = new UserInfo();
            // user.Id = 13;
            // user.Name = "  ";

            // UserInfo user2 = new UserInfo();
            // user2.Id = 14;
            // user2.Name = "  ";

            // List<UserInfo> list = new List<UserInfo>();
            // list.Add(user);
            // list.Add(user2);

            // string sql = "update UserInfo set Name=@Name,UpdateTime=GETDATE() where Id=@ID";
            // int result = DapperTools.Update<UserInfo>(sql, list);
            // if (result > 0)
            // {
            //     Console.WriteLine("    ");
            //     Console.ReadKey();
            // }

            // --------------  --------------
            // string sql = "select * from UserInfo";
            // List<UserInfo> list = DapperTools.Query<UserInfo>(sql);
            // foreach (var item in list)
            // {
            //     Console.WriteLine(item.Id + "-" + item.Name + "-" + item.Age + "-" + item.Memo);
            // }

            // Console.ReadKey();

            // --------------      --------------
            // UserInfo user = new UserInfo();
            // user.Id = 14;

            // string sql = "select * from UserInfo where Id=@Id";
            // UserInfo userInfo = DapperTools.Query<UserInfo>(sql, user);

            // Console.WriteLine(userInfo.Id + "-" + userInfo.Name + "-" + userInfo.Age + "-" + userInfo.Memo);
            // Console.ReadKey();

            // --------------   in  --------------
            // string sql = "select * from UserInfo where Id in @ids";
            // int[] ids = { 1, 2 };

            // List<UserInfo> list = DapperTools.Query<UserInfo>(sql, ids);
            // foreach (var item in list)
            // {
            //     Console.WriteLine(item.Id + "-" + item.Name + "-" + item.Age + "-" + item.Memo);
            // }

            // --------------     --------------
            // string sql = "select * from userinfo;select * from student";

            // DapperTools.QueryMultiple(sql);
        }
    }
}
원본 코드:
링크:https://pan.baidu.com/s/1IM3diCqJCoSpvr11H6zddQ
추출 코드:6ag 9
추 후 에는 계속해서 다른 자 료 를 업데이트 할 것 입 니 다.좋아 하 시 면 지 켜 봐 주세요!
나의 블 로그:https://www.cnblogs.com/duhaoran
C\#Dapper 의 사용 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 관련 C\#Dapper 내용 을 사용 하 시 려 면 저희 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 부 탁 드 리 겠 습 니 다!

좋은 웹페이지 즐겨찾기