Sembra esserci un progetto DapperExtensions, ma esiste anche una classe SqlMapperExtensions nel progetto Dapper. C'è sovrapposizione? Si preferisce l'altro? Non riesco a trovare alcuna documentazione su Dapper.Contrib.Dapper SqlMapperExtensions/Dapper.Contrib?
risposta
Dapper.Contrib
è il nome assembly: https://github.com/StackExchange/Dapper/tree/master/Dapper.Contrib
SqlMapperExtensions
è la classe statica che contiene i metodi contrib entro Dapper.Contrib
: https://github.com/StackExchange/Dapper/blob/master/Dapper.Contrib/SqlMapperExtensions.cs
La documentazione migliore è la classe test case: https://github.com/StackExchange/Dapper/blob/master/Dapper.Tests.Contrib/TestSuite.cs
penso user1003841 era riferito a https://github.com/tmsmith/Dapper-Extensions.
Gli autori sono Thad Smith e Page Brooks - quindi non è il lavoro di Sam Saffron. La pagina del progetto dice "Questa libreria è uno sforzo separato da Dapper.Contrib".
"Gli autori sono Thad Smith e Page Brooks - quindi non è il lavoro di Sam Saffron." mi ha fatto lol a causa di chi la risposta originale è venuto da – Terry
Ho scritto il primo Dapper.Contrib molto tempo fa dopo alcune discussioni con Sam. Non conosco i dettagli del pacchetto Extensions e sembrano fare la stessa cosa CRUD più o meno ma il pacchetto Contrib potrebbe essere un po 'più veloce in alcuni scenari perché ha una cache integrata per entrambe le query e per l'interfaccia basati su POCO con tracciamento interno "sporco". Tagliò dal test-code:
using (var connection = GetOpenConnection())
{
connection.Get<User>(3).IsNull();
var id = connection.Insert(new User {Name = "Adam", Age = 10});
//get a user with "isdirty" tracking
var user = connection.Get<IUser>(id);
user.Name.IsEqualTo("Adam");
connection.Update(user).IsEqualTo(false); //returns false if not updated, based on tracking
user.Name = "Bob";
connection.Update(user).IsEqualTo(true); //returns true if updated, based on tracking
user = connection.Get<IUser>(id);
user.Name.IsEqualTo("Bob");
//get a user with no tracking
var notrackedUser = connection.Get<User>(id);
notrackedUser.Name.IsEqualTo("Bob");
connection.Update(notrackedUser).IsEqualTo(true); //returns true, even though user was not changed
notrackedUser.Name = "Cecil";
connection.Update(notrackedUser).IsEqualTo(true);
connection.Get<User>(id).Name.IsEqualTo("Cecil");
connection.Query<User>("select * from Users").Count().IsEqualTo(1);
connection.Delete(user).IsEqualTo(true);
connection.Query<User>("select * from Users").Count().IsEqualTo(0);
connection.Update(notrackedUser).IsEqualTo(false); //returns false, user not found
Contrib non ha il bel sistema di predicato di ricerca, che ha le estensioni. NOTA c'è una buona discussione su Dapper.Contrib here Dapper.Rainbow VS Dapper.Contrib
Sono sicuro che mi manca qualcosa di stupido e ovvio - ma ottengo "utente non contiene una definizione per IsNull" on line 3. Da dove viene IsNull? grazie. – niico
hai anche un link per la lista completa di questo codice? – niico
Il metodo IsNull() è solo un semplice metodo di prova incluso in Dapper-source su GitHub –
- 1. Dapper. Cercapersone
- 2. Iniezioni Dapper e SQL
- 3. Dapper con MVCMiniProfiler
- 4. Dapper mappatura intermedia mappatura
- 5. Dapper supporta Enums?
- 6. Dapper Multi-mappatura Problema
- 7. Dapper ORM oggetti nidificati
- 8. entità mappatura in Dapper
- 9. Dapper (connection.Query o connection.Execute)
- 10. Invia SqlParameter a Dapper
- 11. Dapper semplice mappatura
- 12. Dapper e in condizione
- 13. Reimposta cache per Dapper
- 14. dapper nuget 1.7 mapping enums
- 15. Come utilizzare Dapper in ServiceStack
- 16. c'è un ExecuteScalar in Dapper
- 17. Utilizzo di Breeze.js con Dapper
- 18. Clausola dynamic where in dapper
- 19. Interrogazione modelli astratti in dapper
- 20. Dapper e Oracle Clob tipo
- 21. Spiegazione del buffer/cache dapper
- 22. Chiama costruttore personalizzato con Dapper?
- 23. Come ottenere SqlDataReader con Dapper?
- 24. Dapper Multi-map livello successivo
- 25. token di cancellazione su Dapper
- 26. Transazioni in "dapper-dot-net"
- 27. Perché dovresti usare Dapper? Inoltre, chiunque può commentare Dapper Vs ADO.NET Pro e Contro
- 28. Come rendere Dapper resiliente per SqlAzure?
- 29. Come passare un parametro null con Dapper
- 30. Make dapper SQL essere sintassi colorized
'Dapper.Contrib' in Nuget? Usare 'Dapper.Contrib' e' Dapper.Rainbow' nello stesso progetto è una buona pratica? – Kiquenet