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 ...
Wyszukaj w graficznym interfejsie graficznym Visual Studio: Narzędzia> Menedżer pakietów NuGet> Zarządzaj pakietami dla rozwiązania ... (Visual Studio 2015) Lub uruchom to polecenie w instancji Nuget Power Shell, aby zainstalować najnowszą stabilną wersję Install-Package Dapper Lub dla...
W przypadku typów znanych w czasie kompilacji użyj parametru ogólnego z 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 { r...
Możesz także zapytać dynamicznie, jeśli zrezygnujesz z typu ogólnego. 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 });
Proste użycie Dapper w pełni obsługuje przechowywane procy: var user = conn.Query<User>("spGetUser", new { Id = 1 }, commandType: CommandType.StoredProcedure) .SingleOrDefault(); Parametry wejściowe, wyjściowe i zwrotne Jeśli chcesz cze...
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 doskonale nadaje się do testowania zapytań do baz danych i obejmuje integrację NuGet . Aby użyć Dappera w LINQPad, naciśnij F4, aby otworzyć Właściwości zapytania, a następnie wybierz Dodaj NuGet . Wyszukaj eleganckie kropki i wybierz Dodaj do zapytania . Będziesz także chciał kliknąć Dodaj...
public class IHtmlStringTypeHandler : SqlMapper.TypeHandler<IHtmlString> { public override void SetValue( IDbDataParameter parameter, IHtmlString value) { parameter.DbType = DbType.String; parameter.Value = value?.ToHtmlString(); } pu...
Aby pobrać wiele siatek w jednym zapytaniu, QueryMultiple jest metoda QueryMultiple . To pozwala ci kolejno pobierać każdą siatkę poprzez kolejne wywołania przeciwko zwróconej GridReader . var sql = @"select * from Customers where CustomerId = @id select * from Orders where Custom...
Dapper ułatwia stosowanie najlepszych praktyk dzięki w pełni sparametryzowanemu SQL. Parametry są ważne, więc eleganckie ułatwia prawidłowe ustawienie. Po prostu wyrażasz swoje parametry w normalny sposób dla swojego RDBMS (zwykle @foo ?foo lub :foo ) i nadajesz obiektowi, który ma element o nazwi...
Czasami wygoda parametru (pod względem konserwacji i ekspresji) może być przeważona kosztem wydajności, aby traktować go jako parametr. Na przykład, gdy rozmiar strony jest ustalony przez ustawienie konfiguracji. Lub wartość statusu jest dopasowywana do wartości enum . Rozważać: var orders = connec...
Częstym scenariuszem w zapytaniach do baz danych jest IN (...) gdzie lista jest generowana w czasie wykonywania. Większość RDBMS nie ma na to dobrej metafory - i nie ma na to uniwersalnego rozwiązania między RDBMS . Zamiast tego program dapper zapewnia delikatne automatyczne rozszerzanie poleceń. W...
Czasami chcesz zrobić to samo wiele razy. Dapper obsługuje to w metodzie Execute , jeśli najbardziej zewnętrzny parametr (który jest zwykle pojedynczym anonimowym typem lub instancją modelu domeny) jest faktycznie dostarczany jako sekwencja IEnumerable . Na przykład: Order[] orders = ... // update...
Wszystkie wartości w Redis są ostatecznie przechowywane jako typ 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"); Lub za pomocą StackExchange.Redis.Extensions : db.Add("key", 11021); int i = db.Get<int>("key");
Nie zawsze jest możliwe spakowanie wszystkich parametrów w jednym obiekcie / wywołaniu. Aby pomóc w bardziej skomplikowanych scenariuszach, dapper pozwala parametrowi param być instancją IDynamicParameters . Jeśli to zrobisz, twoja niestandardowa metoda AddParameters zostanie wywołana w odpowiednim...
W ADO.NET poprawna obsługa null jest stałym źródłem nieporozumień. Kluczową kwestią w elegancji jest to , że nie musisz ; zajmuje się tym wszystkim wewnętrznie. wartości parametrów, które są null są poprawnie wysyłane jako DBNull.Value odczytane wartości, które są null są prezentowane jako null l...

Page 1 of 1336