Operatiile CRUD cu Dapper au devenit simple.
Dommel ofera un API convenabil pentru operatiuni CRUD utilizand metode de extensie de pe interfata IDbConnection. Interogarile SQL sunt generate pe baza entitatilor dvs. POCO. Dommel accepta, de asemenea, expresiile LINQ care sunt traduse in expresii SQL. Dapper este utilizat pentru executarea interogarilor si maparea obiectelor.
Exista mai multe puncte de extensibilitate disponibile pentru a schimba comportamentul rezolvarii numelor de tabele, numele coloanelor, proprietatea cheie si proprietatile POCO. Consultati Extensibilitatea pentru mai multe detalii.
Descarca
Dommel este disponibil pe NuGet:
Utilizarea CLI .NET Core:
dotnet add package Dommel
Utilizarea Managerului de pachete NuGet:
PM> Install-Package Dommel
API
Preluarea entitatilor dupa ID
Preluarea tuturor entitatilor dintr-un tabel
Selectarea entitatilor folosind un predicat
Dommel va permite sa specificati un predicat care este tradus intr-o expresie SQL. Argumentele din expresia lambda sunt adaugate ca parametri la comanda.
Interogari similare
Este posibil sa generati interogari LIKE folosind Contains (), StartsWith () sau EndsWith () pe proprietatile sirului:
Inserarea entitatilor
Actualizarea entitatilor
Eliminarea entitatilor
Cartografiere multipla
Relatiile unu-la-unu
Dommel este capabil sa genereze interogari de asociere bazate pe functia de mapare multipla specificata. Luati in considerare urmatoarele POCO:
Produsul cu categoria sa asociata poate fi interogat impreuna utilizand metoda Get <T1, T2, …, TResult> ():
incestos lesbicos tuporn
maduras gordibuenas lesbianas scat
revistas xxx porno sub
pornoxxxxx hentai audio español
torrent porno vidiosxxx
maduras por dinero xxx españa
maduras.com porno parejas
sione cooper xxxabuelas
tragando semen xxx chicas haciendo el amor
incestos jovencitas orgias xxx
mamas incestuosas tetonas en la playa
se folla al porno español jovencita
folladas salvajes moras follando
se follan a mi mujer maduras españolas camara oculta
me corro en la boca de mama sexo romantico
travestis maduras coños gordos
compartiendo novia cine xxx
gallega porno videos porno gratis caseros
culos gordos jovencitas masturbandose
bbw abuelas triple anal
Categorie = categorie; returnare produs;});
Coloane cu cheie straina
CategoryId este utilizat automat ca cheie straina intre produs si categorie. Aceasta urmeaza o conventie simpla: unirea numelui tabelului + Id (Categorie + Id). Puteti inlocui acest comportament utilizand atributul [ForeignKey (“ForeignKeyColumnName”)] sau prin implementarea propriului dvs. IForeignKeyPropertyResolver.
Relatii intre multi
Relatiile unu la mai multe functioneaza intr-un mod similar, asteptati-va ca cheia externa este definita pe tipul unit, mai degraba decat pe tipul sursa . De exemplu:
Comanda cu copilul sau OrderLine poate fi interogata impreuna utilizand metoda Get <T1, T2, …, TResult> ():
Cartografiere automata multipla
Nota: aceasta este o caracteristica experimentala.
Dommel este capabil sa creeze expresii de imbinare simple pentru recuperarea entitatilor parinte-copil. Relatiile unu-la-unu si unu-la-multe sunt acceptate. Functioneaza in acelasi mod ca o cartografiere obisnuita, cu exceptia faptului ca nu este nevoie sa specificati o functie care efectueaza cartarea obiectelor. Folosind aceleasi POCO ca exemplele anterioare:
Preluarea unui produs si a categoriei sale asociate:
Preluarea unei singure comenzi si impreuna cu a acesteia OrderLine:
Egalitatea entitatilor
Cand va alaturati cu doua sau mai multe tabele cu o relatie unu-la-multi, vi se cere sa suprascrieti metoda Equals (obiect obj) sau sa implementati interfata IEquatable <T> pe POCO, astfel incat Dommel sa poata stabili daca o entitate este deja adaugata la Colectie. De exemplu:
Asincron
Toate metodele Dommel au omologi asincroni, cum ar fi GetAsync, GetAllAsync, SelectAsync, InsertAsync, UpdateAsync, DeleteAsync etc.
Constructorii de interogari
Dommel accepta crearea de interogari specializate pentru un anumit RDBMS. In mod implicit, sunt inclusi constructorii de interogari pentru urmatoarele RDMBS: SQL Server, SQL Server CE, SQLite, MySQL si Postgres. Generatorul de interogari care trebuie utilizat este determinat de tipul de conexiune. Pentru a adauga sau a suprascrie un constructor de interogari existent, utilizati metoda AddSqlBuilder ():
Extensibilitate
ITableNameResolver
Implementati aceasta interfata daca doriti sa personalizati rezolvarea numelor de tabele atunci cand creati interogari SQL.
Utilizati metoda SetTableNameResolver () pentru a inregistra implementarea personalizata:
IKeyPropertyResolver
Implementati aceasta interfata daca doriti sa personalizati rezolvarea proprietatii cheie a unei entitati. In mod implicit, Dommel va cauta o proprietate cu atributul [Cheie] sau o coloana cu numele „Id”.
Daca aveti, de exemplu, conventia de numire a {TypeName} Id pentru proprietatile cheie, veti implementa IKeyPropertyResolver astfel:
Utilizati metoda SetKeyPropertyResolver () pentru a inregistra implementarea personalizata:
IForeignKeyPropertyResolver
Implementati aceasta interfata daca doriti sa personalizati rezolvarea proprietatii cheii straine de la o entitate la alta. In mod implicit, Dommel va cauta o proprietate cu {TypeName} Id sau numele coloanei specificat folosind atributul [ForeignKey].
Aceasta este o interfata destul de avansata. Furnizarea propriei implementari necesita o anumita cunoastere a modului in care Dommel gestioneaza relatiile cheie straine. Luati in considerare subclasarea DefaultForeignKeyPropertyResolver si suprascrie ResolveForeignKeyProperty ().
Utilizati metoda SetForeignKeyPropertyResolver () pentru a inregistra implementarea personalizata:
IColumnNameResolver
Implementati aceasta interfata daca doriti sa personalizati rezolvarea numelor de coloane pentru atunci cand creati interogari SQL. Acest lucru este util atunci cand conventiile de numire pentru coloanele bazei de date sunt diferite de proprietatile dvs. POCO.
Utilizati metoda SetColumnNameResolver () pentru a inregistra implementarea personalizata:
Extensia Dapper.FluentMap.Dommel implementeaza aceste interfete utilizand maparea configurata a Dapper.FluentMap. A se vedea, de asemenea: Dapper.FluentMap.








