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 ...
Cerca nella GUI di Visual Studio: Strumenti> NuGet Package Manager> Gestisci pacchetti per la soluzione ... (Visual Studio 2015) Oppure esegui questo comando in un'istanza di Nuget Power Shell per installare l'ultima versione stabile Install-Package Dapper O per una versione sp...
Per i tipi noti al momento della compilazione, utilizzare un parametro generico con 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 IgnoredProper...
Puoi anche eseguire query dinamicamente se non utilizzi il tipo generico. 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 });
Uso semplice Dapper supporta pienamente i proc memorizzati: var user = conn.Query<User>("spGetUser", new { Id = 1 }, commandType: CommandType.StoredProcedure) .SingleOrDefault(); Input, Output e Return Parametri Se vuoi qualcosa di più ...
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 è ottimo per testare le query del database e include l'integrazione NuGet . Per utilizzare Dapper in LINQPad premere F4 per aprire Proprietà query, quindi selezionare Aggiungi NuGet . Cerca net dot dapper e seleziona Aggiungi a query . Dovrai anche fare clic su Aggiungi spazi dei nomi e...
public class IHtmlStringTypeHandler : SqlMapper.TypeHandler<IHtmlString> { public override void SetValue( IDbDataParameter parameter, IHtmlString value) { parameter.DbType = DbType.String; parameter.Value = value?.ToHtmlString(); } pu...
Per recuperare più griglie in una singola query, viene utilizzato il metodo QueryMultiple . Ciò consente quindi di recuperare ogni griglia in sequenza attraverso chiamate successive contro il GridReader restituito. var sql = @"select * from Customers where CustomerId = @id select ...
Dapper semplifica il seguire le migliori pratiche mediante SQL completamente parametrizzato. I parametri sono importanti, quindi dapper rende facile farlo bene. Devi semplicemente esprimere i tuoi parametri nel modo normale per il tuo RDBMS (solitamente @foo ?foo o :foo ) e dare a dapper un oggett...
A volte la convenienza di un parametro (in termini di manutenzione ed espressività) può essere superata dal suo costo in termini di prestazioni per trattarlo come un parametro. Ad esempio, quando la dimensione della pagina è fissata da un'impostazione di configurazione. O un valore di stato è a...
Uno scenario comune nelle query di database è IN (...) dove l'elenco qui viene generato in fase di esecuzione. La maggior parte degli RDBMS non ha una buona metafora per questo - e per questo non esiste una soluzione cross-RDBMS universale. Invece, dapper offre una leggera espansione automatica...
A volte, vuoi fare la stessa cosa più volte. Dapper supporta questo metodo nel metodo Execute se il parametro più esterno (che di solito è un singolo tipo anonimo o un'istanza del modello di dominio) viene effettivamente fornito come una sequenza IEnumerable . Per esempio: Order[] orders = ... ...
Tutti i valori in Redis vengono infine memorizzati come tipo 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"); O usando StackExchange.Redis.Extensions : db.Add("key", 11021); int i = db.Get<int>("key");
Non è sempre possibile impacchettare ordinatamente tutti i parametri in un singolo oggetto / chiamata. Per aiutare con scenari più complicati, dapper consente al parametro param di essere un'istanza IDynamicParameters . Se si esegue questa operazione, il metodo AddParameters personalizzato vien...
In ADO.NET, la gestione corretta di null è una costante fonte di confusione. Il punto chiave in dapper è che non devi ; si occupa di tutto internamente. i valori dei parametri null vengono inviati correttamente come DBNull.Value i valori letti che sono null sono presentati come null , o (nel caso...

Page 1 of 1336