1 / 10

Linq To SQL

Linq To SQL. Fagdag. 20. November 2009. DataContext. DataContexten er mappingen mot databasen Generer objekter for alle entiteter (tabeller), med properties for alle kolonner

tamarr
Download Presentation

Linq To SQL

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Linq To SQL Fagdag 20. November 2009

  2. DataContext • DataContexten er mappingen mot databasen • Generer objekter for alle entiteter (tabeller), med properties for alle kolonner • Det er disse objektene vi jobber med, og når vi submitter endringer så sørger DataContexten for at databasen oppdateres korrekt • Henter vi ut samme entitet flere ganger, så ser DataContexten dette og sørger for at det kun er ett objektet som representerer entiteten • Sette opp DataContext: • Add new item: LINQ to SQL Classes -> gir deg en .dbml fil • Koble opp databaseconnection i server explorer og utvid den så du ser tabellene • Dra de tabellene du ønsker å bruke fra server explorer inn i vinduet til .dbml filen Selskapspresentasjon 2007

  3. Entiteter og tabeller vs klasser og properties • Opprett en instans av datacontexten din: • MyDataContext dataContextenMin = new MyDataContext(); • Hver entitet har blitt til en en klasse • Entiteten Person -> klassen MyDataContext.Person • Selve tabellen får man tak i som en property på datacontexten med en ”s” lagt til på slutten av navnet • Tabellen Person -> dataContextenMin.Persons av type System.Data.Linq.Table<Person> Selskapspresentasjon 2007

  4. Enkle spørringer • Hent data fra en tabell var persons = from person in dataContextenMin.Persons Select person; Selskapspresentasjon 2007

  5. Enkle spørringer • Sett inn data in en tabell ved å opprette en ny instans av en entitet og bruke InsertOnSubmit på tabellen og SubmitChanges på datacontexten Person nyPerson = new Person(){Navn = ”Per”}; dataContextenMin.Persons.InsertOnSubmit(nyPerson); dataContextenMin.SubmitChanges(); Selskapspresentasjon 2007

  6. Enkle spørringer • Endre data ved å hente ut en entitet, endre den og så kjøre SubmitChanges på datacontexten Person personSomSkalEndres = from person in dataContextenMin.Persons where person.Id == 1 select person; personSomSkalEndres.Navn = ”Truls”; dataContextenMin.SubmitChanges(); • Evt slett den ved å kjøres DeleteOnSubmit på tabellen dataContextenMin.DeleteOnSubmit(personSomSkalEndres); dataContextenMin.SubmitChanges(); Selskapspresentasjon 2007

  7. Join Var personerMedFylke = from person in dataContextenMin.Persons join fylke in dataContextenMin.Fylkes on person.fylkeId equals fylke.Id select new{person.Navn, fylke.Navn}; Selskapspresentasjon 2007

  8. Group by og orderby Var personsGroupedByFylke = from person in dataContextenMin.Persons group person by person.fylkeId into groupedPersons from person in groupedPersons select person; Var personsGroupedByFylke = from person in dataContextenMin.Persons orderby person.fylkeId select person; Selskapspresentasjon 2007

  9. IQueryable vs IEnumerable Var personsInOppland = from person in dataContextenMin.Persons where fylkeId==2 select person; (ingenting kjørt mot databasen enda) Var personsInOpplandAbove50Years = from person in personsInOppland where person.Age > 50 select person; (fortsatt ingen spørring kjørt mot databasen) Foreach(var person in personsInOpplandAbove50Years){ Console.WriteLine(person.Name+” er over 50 år og bor i Oppland); } I det første element blir forsøkt hentet, så kjøres den sammensatte spørringen mot databasen. Selskapspresentasjon 2007

  10. Oppgavene • Databasen ligger i prosjektet (Fagdag.mdf) • Du kan se innholdet i en tabell ved å gå i server explorer, utvide Fagdag.mdf så du ser tabellene, høyreklikk på en tabell og velg ”Show Table Data”. Greit for å vite hvilke ID-er som er gyldige å lete etter hvis du trenger det ;) • Databasen er relativt enkel; det er ikke satt opp fremmednøkler så relasjonene er ”gitt” ved navnet på kolonnene. TrackId i Person-tabellen skal være et tall som finnes i Id i Track-tabellen, osv  • Løsningen finnes i alle oppgavene, men prøv å løs de selv! Kanskje finner du en smartere måte å gjøre det på  Selskapspresentasjon 2007

More Related