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:
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.
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
Nedenfor begynner vi å bruke direkte,
Gi en kastanje:
Det endelige resultatet er som følger:
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:
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