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: Инструменты> Диспетчер пакетов NuGet> Управление пакетами для решения ... (Visual Studio 2015) Или запустите эту команду в экземпляре Nuget Power Shell, чтобы установить последнюю стабильную версию Install-Package Dapper Или для конкр...
Для типов, известных во время компиляции, используйте общий параметр с 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 { re...
Вы также можете запросить динамически, если вы оставите общий тип. 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 полностью поддерживает хранимые процедуры: var user = conn.Query<User>("spGetUser", new { Id = 1 }, commandType: CommandType.StoredProcedure) .SingleOrDefault(); Параметры ввода, вывода и возврата Если вы хо...
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 . Чтобы использовать Dapper в LINQPad, нажмите F4, чтобы открыть Свойства запроса, а затем выберите Добавить NuGet . Найдите сеть dapper dot net и выберите « Добавить в запрос» . Вы также захотите нажать « ...
public class IHtmlStringTypeHandler : SqlMapper.TypeHandler<IHtmlString> { public override void SetValue( IDbDataParameter parameter, IHtmlString value) { parameter.DbType = DbType.String; parameter.Value = value?.ToHtmlString(); } pu...
Для извлечения нескольких сеток в одном запросе QueryMultiple метод QueryMultiple . Это позволяет вам последовательно получать каждую сетку через последовательные вызовы с возвращенным GridReader . var sql = @"select * from Customers where CustomerId = @id select * from Orders whe...
Dapper позволяет легко следовать наилучшей практике с помощью полностью параметризованного SQL. Параметры важны, поэтому dapper упрощает правильное использование. Вы просто выражаете свои параметры обычным способом для вашей РСУБД (обычно @foo ?foo или :foo ) и даете dapper объект, у которого есть...
Иногда удобство параметра (с точки зрения обслуживания и выразительности) может быть перевешивается его стоимостью в производительности, чтобы рассматривать его как параметр. Например, когда размер страницы фиксируется настройкой конфигурации. Или значение статуса соответствует значению enum . Расс...
Обычный сценарий в запросах базы данных - IN (...) где список создается во время выполнения. Для большинства РСУБД не хватает хорошей метафоры для этого - и для этого нет универсального решения для РСУБД . Вместо этого dapper обеспечивает нежное автоматическое расширение команд. Все, что требуется,...
Иногда вы хотите сделать одно и то же несколько раз. Dapper поддерживает это в методе Execute если внешний параметр (который обычно представляет собой один анонимный тип или экземпляр модели домена) фактически предоставляется как последовательность IEnumerable . Например: Order[] orders = ... // u...
Все значения в 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"); Или используя StackExchange.Redis.Extensions : db.Add("key", 11021); int i = db.Get<int>("key");
Не всегда возможно аккуратно упаковать все параметры в одном объекте / вызове. Чтобы помочь с более сложными сценариями, dapper позволяет параметру param быть экземпляром IDynamicParameters . Если вы это сделаете, ваш настраиваемый метод AddParameters вызывается в соответствующее время и передает к...
В ADO.NET правильное обращение с null является постоянным источником путаницы. Ключевым моментом в dapper является то, что вам не нужно ; он занимается всем этим внутренне. Значения параметров , которые являются null правильно посланы как DBNull.Value значения, которые считаются null , представле...

Page 1 of 1336