Bruk EntityFramework.Extended for å utvide EF (Entity Framework Extension Series 2)

Use Entityframework Extended Extend Ef



Forord

I dag skal vi snakke om EntityFramework.Extended



Først og fremst, hva er dette EntityFramework. Utvidet som følger:



Dette er et klassebibliotek som utvider Entity Framework.



Støtter EF 5.0 / 6.0+ fullt ut,

GitHub-adresse https://github.com/loresoft/EntityFramework.Extended

Den siste oppdateringen var 2015/07/10



Dette biblioteket støtter batchoppdatering og sletting. Spørringsresultatbuffer og revisjonslogg.

Denne utvidelsen genererer bare én SQL-setning for hver batchoperasjon, og genererer ikke N SQL-setninger i batcher av N-data som den opprinnelige metoden som tilbys av EntityFramework

Miljøet og teknologien som brukes i denne artikkelen

System: WIN7

Database: SQL Server2008

Relaterte teknologier: MVC5 + EF6.1.3 + EntityFramework.Extended6.0

Kapittel 1: Batchdrift av databasen

batch sletting:

//Remember to quoteusing EntityFramework.Extensions//Either way is possible, Context is your EF context object.context.LogData.Delete(a => a.EntityKey == 'aa') context.LogData.Where(a => a.EntityKey == 'aa').Delete()

Batch oppdatering:

//data is the number of rows modifiedint data =context.LogData.Where(a=>a.EntityKey=='aa').Update(b=> new LogData { EntityName = 'ss' })//The second way of writing, this is for DbSet, has been marked outdated var data = context.LogData.Update(a => a.EntityKey == 'aa',b=> new LogData { EntityName = 'ss' })

Partiøkning:

//This has nothing to do with Extended... EF itself comes with it, just give the novice an example, the god ignores it...int data= context.LogData.AddRange(new List())

Kapittel 2: Spørre database i grupper

Batch-spørring:

640? Wx_fmt = png

Prinsippet er dette:

Originaltekst til E:

Fremtidige spørsmål fungerer ved å lage det passende IFutureQuery-objektet som holder IQuerable. IFutureQuery-objektet blir deretter lagret i IFutureContext.FutureQueries-listen. Når et av IFutureQuery-objektene blir oppregnet, kalles det tilbake til IFutureContext.ExecuteFutureQueries () via LoadAction-delegaten. ExecuteFutureQueries bygger en batch-spørring fra alle de lagrede IFutureQuery-objektene. Til slutt oppdateres alle IFutureQuery-objektene med resultatene fra spørringen.

Denne kukens krydret kylling erotisk oversettelse:

Future vil lage sitt tilpassede IFutureQuery-objekt basert på IQuerable, og deretter legge ham til IFutureContext.FutureQueries-spørringskøen. Når et objekt i køen kaller LoadAction, blir IFutureContext.ExecuteFutureQueries () -metoden utført, og ExecuteFutureQueries vil bygge en batch. Spør IFutureQuery, og oppdater til slutt alle IFutureQuery-søkeresultater (det vil si spørsmål).

Kapittel 3: EFs datatilsynslogg

Datatilsynslogg:

La meg først snakke om konseptet med revisjon, som er å overvåke driften (tillegg, sletting, modifikasjon) av alle enheter.

La oss ta en titt på effekten først.

640? Wx_fmt = png

Dette er informasjonen han sporer. Vi kan enkelt lagre denne informasjonen i databasen eller i loggoppbevaringen (tekst, XML, cache).

Nedenfor begynner vi å forklare bruken:

Først og fremst kan vi konfigurere ved inngangen til applikasjonen (Application_Start) (jeg vil bruke MVC-webapplikasjonen som et eksempel):

Konfigurasjonen her kan utelates, og standard er også ok, selvfølgelig, hvis du trenger det, kan du referere til det

https://github.com/loresoft/EntityFramework.Extended/wiki/Audit-Log

Her er en mer detaljert konfigurasjonsinnledning

640? Wx_fmt = png

Nedenfor begynner vi å bruke direkte,

Gi en kastanje:

640? Wx_fmt = png

Det endelige resultatet er som følger:

640? Wx_fmt = png

Det kan sees at vi enkelt har overvåket de tre operasjonene vi nettopp har utført.

(Viktig merknad: Det som må noteres her er at revisjonsloggen her bare kan overvåke tillegg, sletting og modifisering av konvensjonell skriving,Det er veldig rart for ovennevnte gruppe med tillegg, slettinger og endringer som ikke kan overvåkes, Som et utvidelsesbibliotek skrevet av meg selv, men jeg kan ikke overvåke det--, dette må sies at det gjør vondt ..)

Kapittel 4: Spørringsbuffer

kode viser som nedenfor:

640? Wx_fmt = png

Jeg bruker ikke så mye, så jeg vil ikke gå i detaljer. Venner som er interessert kan sjekke det selv.

https://github.com/loresoft/EntityFramework.Extended/wiki/Query-Result-Cache

Skriv til slutt

Dette er slutten på artikkelen. Prosessen med å skrive artikkelen er også en prosess for å lære av det gamle. Jeg skriver ikke bra. Jeg håper gudene kan rette meg mye. Jeg håper å ha effekten av å kaste murstein og introdusere jade. Den siste artikkelen fikk mange gode forslag. Jeg håper alle ikke vil lære meg

Opprinnelig adresse: http://www.cnblogs.com/GuZhenYin/p/5482288.html


.NET samfunn nyheter, grundig god artikkel, søk i WeChatdotNET kryssplattformEller skann QR-koden for å følge

640? Wx_fmt = jpeg