Tutorial by Examples



using StackExchange.Redis; // ... // connect to the server ConnectionMultiplexer connection = ConnectionMultiplexer.Connect("localhost"); // select a database (by default, DB = 0) IDatabase db = connection.GetDatabase(); // run a command, in this case a GET RedisValue myVal ...
Visual Studio GUI에서 검색하십시오. 도구> NuGet 패키지 관리자> 솔루션 패키지 관리 ... (Visual Studio 2015) 또는 Nuget Power Shell 인스턴스에서이 명령을 실행하여 최신 안정 버전을 설치하십시오 Install-Package Dapper 또는 특정 버전 Install-Package Dapper -Version 1.42.0
컴파일 타임에 알려진 유형의 경우 Query<T> 제네릭 매개 변수를 사용하십시오. public class Dog { public int? Age { get; set; } public Guid Id { get; set; } public string Name { get; set; } public float? Weight { get; set; } public int IgnoredProperty { get { return 1; } } } // IDBConnec...
일반 유형을 사용하지 않으면 동적으로 쿼리 할 수도 있습니다. IDBConnection db = /* ... */; IEnumerable<dynamic> result = db.Query("SELECT 1 as A, 2 as B"); var first = result.First(); int a = (int)first.A; // 1 int b = (int)first.B; // 2
class ToyProfiler : IProfiler { public ConcurrentDictionary<Thread, object> Contexts = new ConcurrentDictionary<Thread, object>(); public object GetContext() { object ctx; if(!Contexts.TryGetValue(Thread.CurrentThread, out ctx)) ctx = null; ...
ConnectionMultiplexer conn = /* initialization */; var profiler = new ToyProfiler(); conn.RegisterProfiler(profiler); var threads = new List<Thread>(); var perThreadTimings = new ConcurrentDictionary<Thread, List<IProfiledCommand>>(); for (var i = 0; i < 16; i++) {...
IDBConnection db = /* ... */ var id = /* ... */ db.Execute(@"update dbo.Dogs set Name = 'Beowoof' where Id = @id", new { id });
간단한 사용법 Dapper는 저장된 procs를 완벽하게 지원합니다. var user = conn.Query<User>("spGetUser", new { Id = 1 }, commandType: CommandType.StoredProcedure) .SingleOrDefault(); 입력, 출력 및 리턴 매개 변수 더 멋진 것을 원한다면 다음과 같이 할 수 있습니다. var p = new DynamicParameters(...
using System.Data; using System.Linq; using Dapper; class Program { static void Main() { using (IDbConnection db = new SqlConnection("Server=myServer;Trusted_Connection=true")) { db.Open(); var result = db.Query<string>(&quo...
LINQPad 는 데이터베이스 쿼리 테스트에 적합하며 NuGet 통합을 포함합니다. LINQPad에서 Dapper를 사용하려면 F4 키 를 눌러 쿼리 속성을 연 다음 Add NuGet 을 선택 하십시오 . dapper dot net을 검색하고 Add Add Query를 선택 하십시오 . 또한 LINQPad 쿼리에 확장 메서드를 포함하려면 네임 스페이스 추가 를 클릭하고 Dapper를 강조 표시합니다. Dapper가 활성화되면 언어 드롭 다운을 C # 프로그램으로 변경하고 쿼리 결과를 C # 클래스에 매핑 한 다음 .Dump ()...
public class IHtmlStringTypeHandler : SqlMapper.TypeHandler<IHtmlString> { public override void SetValue( IDbDataParameter parameter, IHtmlString value) { parameter.DbType = DbType.String; parameter.Value = value?.ToHtmlString(); } pu...
단일 쿼리에서 여러 그리드를 가져 오려면 QueryMultiple 메서드가 사용됩니다. 그러면 반환 된 GridReader 에 대한 연속적인 호출을 통해 각 그리드를 순차적으로 검색 할 수 있습니다. var sql = @"select * from Customers where CustomerId = @id select * from Orders where CustomerId = @id select * from Returns where CustomerId = @id"; ...
Dapper를 사용하면 완전히 매개 변수화 된 SQL을 사용하여 모범 사례를 쉽게 따르게됩니다. 매개 변수가 중요하므로 dapper를 사용하면 쉽게 이해할 수 있습니다. RDBMS (보통 @foo ?foo 또는 :foo )에 대한 일반적인 방법으로 매개 변수를 표현하고 foo 라는 멤버가있는 객체를 dapper에 제공하면됩니다. 이 작업을 수행하는 가장 일반적인 방법은 익명 형식입니다. int id = 123; string name = "abc"; connection.Execute("insert [...
때로는 매개 변수의 편의성 (유지 관리 및 표현력면에서)이 매개 변수로 취급하기위한 성능 비용보다 중요 할 수 있습니다. 예를 들어 페이지 크기가 구성 설정에 의해 고정 된 경우. 또는 상태 값이 enum 값과 일치합니다. 중히 여기다: var orders = connection.Query<Order>(@" select top (@count) * -- these brackets are an oddity of SQL Server from Orders where CustomerId = @customerId ...
데이터베이스 쿼리의 일반적인 시나리오는 IN (...) 입니다. IN (...) 목록은 런타임에 생성됩니다. 대부분의 RDBMS에는 이에 대한 좋은 은유가 없으며이를위한 범용 교차 RDBMS 솔루션은 없습니다. 대신 dapper는 자동 명령 확장 기능을 제공합니다. 필요한 모든 것은 IEnumerable 제공된 매개 변수 값입니다. @foo 가 포함 된 명령은 (@foo0,@foo1,@foo2,@foo3) (4 개 항목의 순서에 대해) 확장됩니다. 이것의 가장 일반적인 사용법은 IN . int[] orderIds = ... va...
때로는 같은 일을 여러 번하고 싶어합니다. Dapper는 가장 바깥 쪽 매개 변수 (일반적으로 단일 익명 형식 또는 도메인 모델 인스턴스)가 실제로 IEnumerable 시퀀스로 제공되는 경우 Execute 메서드에서이 메서드를 지원합니다. 예 : Order[] orders = ... // update the totals connection.Execute("update Orders set Total=@Total where Id=@Id", orders); 여기, dapper는 우리의 데이터에서 간단한 반복...
Redis의 모든 값은 궁극적으로 RedisValue 유형으로 저장됩니다. //"myvalue" here is implicitly converted to a RedisValue type //The RedisValue type is rarely seen in practice. db.StringSet("key", "aValue");
db.StringSet("key", 11021); int i = (int)db.StringGet("key"); 또는 Using StackExchange.Redis.Extensions : db.Add("key", 11021); int i = db.Get<int>("key");
단일 개체 / 호출에서 모든 매개 변수를 깔끔하게 정리할 수있는 것은 아닙니다. 보다 복잡한 시나리오를 돕기 위해 dapper는 param 매개 변수가 IDynamicParameters 인스턴스가되도록합니다. 이렇게하면 적절한 시간에 사용자 지정 AddParameters 메서드가 호출되고에 추가 할 명령이 전달됩니다. 그러나 대부분의 경우 기존의 DynamicParameters 유형을 사용하면 충분합니다. var p = new DynamicParameters(new { a = 1, b = 2 }); p.Add("c&qu...
ADO.NET에서 올바르게 null 처리하는 것은 혼란의 지속적인 원인입니다. 대담한 점은 당신이 할 필요가 없다는 것입니다 ; 그것은 내부적으로 모든 것을 다룹니다. null 매개 변수 값은 DBNull.Value 로 올바르게 전송됩니다. 숙지 값 null 하는 형식으로 표시하고 있습니다 null 간단하게 (자신의 타입 기반의 기본을 떠나) 무시 (알려진 유형 맵핑의 경우), 또는 그냥 작동합니다. string name = null; int id = 123; connection.Execute("update Cu...

Page 1 of 1336