Förstå grunderna i LINQ. Mål med lektionen!

Relevanta dokument
Mål med lektionen! Repetera och befästa kunskaperna.

Arbeta med databas. Översikt. Lektion 1: Arbeta med Entity Data Models. Arbeta med Entity Data Models. LINQ (Language Integrated Query).

DIAGNOSTISKT PROV. Tid. Hjälpmedel. Antaganden. Rättning. Övrigt. Diagnostiskt Prov. Klockan Inga

Arrayer (fält)

Introduktion till Entity Framework och LINQ. Källa och läs mer

Delegater, events och lambdauttryck

Föreläsning 4 Innehåll. Abstrakta datatypen lista. Implementering av listor. Abstrakt datatypen lista. Abstrakt datatyp

Grundläggande datalogi - Övning 1

Language Integrated Query, LINQ, och databaser

Mål med lektionen! Veta kursmålen. Ha kännedom om några av de grundläggande begreppen.

Objektorienterad Programkonstruktion. Föreläsning 2 2 nov 2016

Föreläsning 8 - del 2: Objektorienterad programmering - avancerat

Objektorienterad Programmering (OOP) Murach s: kap 12-16

Föreläsning 4 Innehåll

Lösningsförslag till tentamen Datastrukturer, DAT037,

Asp.net mvc intro PER KVARNBRINK,

Systemutvecklare SU13, Malmö

Exempel: Exempel: Exempel: Exempel: $djur=array("ko","katt","älg"); foreach ($djur as $d) { echo $d. " "; } Resultat. ko katt älg

Föreläsning 6: Introduktion av listor

Föreläsning 1. Abstrakta datatyper, listor och effektivitet

Idag. Javas datatyper, arrayer, referenssemantik. Arv, polymorfi, typregler, typkonvertering. Tänker inte säga nåt om det som är likadant som i C.

TDDC74 Lab 02 Listor, sammansatta strukturer

DAT043 - föreläsning 8

Diagnostiskt Prov. Antaganden Om förutsättningar saknas I en uppgift skall rimliga antaganden göras och nedtecknas.

Föreläsning 8: Exempel och problemlösning

Programmering I Tobias Wrigstad fredag, 2009 augusti 28

i LabVIEW. Några programmeringstekniska grundbegrepp

Tentamen i Algoritmer & Datastrukturer i Java

Calculate check digits according to the modulus-11 method

Agenda. Objektorienterad programmering Föreläsning 13

Repetition av OOP- och Javabegrepp

OOP Objekt-orienterad programmering

Lösningsförslag till omtentamen för TDA540 Objektorienterad Programmering

Repetition av OOP- och Javabegrepp

Det här dokumentet är till för att ge en översikt över ASP.NET MVC samt hur WCF Services används från.net applikationer.

Introduktion till programmering SMD180. Föreläsning 2: Variabler, uttryck och satser

Sammansatta datatyper Generics: Parametrisk polymorfism

Planering Programmering grundkurs HI1024 HT 2014

Att skriva till och läsa från terminalfönstret

Klasshierarkier - repetition

2D1311 Programmeringsteknik för Bio1 och Bio2, vt 2003 Fiktivt prov På flervalsfrågorna är endast ett svar rätt om inget annat anges i frågan! Det rik

Klassdeklaration. Metoddeklaration. Parameteröverföring

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 2. Länkade listor Stackar Köer MyList Iteratorer Lab 2 Exceptions Paket

Visual Basic, en snabbgenomgång

Imperativ programmering. Föreläsning 2

Polymorfi. Objektorienterad och komponentbaserad programmering

Lambdas. (och fler design patterns) Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2017

I STONE. I Variabler, datatyper, typkonvertering. I Logiska och matematiska uttryck. I Metoder-returvärde och parametrar. I Villkorssatser if/else

PROGRAMMERING-Java Omtentamina

Föreläsning 5 Innehåll

Objektsamlingar i Java

TDDD78, TDDE30, 729A Introduktion till Java -- för Pythonprogrammerare

Objektorienterad Programmering DAT043. Föreläsning 9 12/2-18 Moa Johansson (delvis baserat på Fredrik Lindblads material)

Länkade strukturer. (del 2)

Tentamen Grundläggande programmering

Laboration A Objektsamlingar

(Man brukar säga att) Java är... Denna föreläsning. Kompilering av Java. Historik: Java. enkelt. baserat på C/C++ Allmänt om Java

Grundläggande programmering med C# 7,5 högskolepoäng. Provmoment: Ladokkod: Tentamen ges för: TEN1 NGC011 ADAEK17, ASYST17 samt öppen för alla

E13 "Behind the Wild"

TDDD78, TDDE30, 729A Introduktion till Java -- för Pythonprogrammerare

Tentamen ID1004 Objektorienterad programmering October 29, 2013

Tentamen, EDA690 Algoritmer och Datastrukturer, Helsingborg

PROGRAMMERING-JAVA TENTAMINA

Programmering för språkteknologer II, HT2011. Rum

Static vs Dynamic binding Polymorfism. Objekt-orienterad programmering och design (DIT953) Niklas Broberg, 2018

Dagens program. Programmeringsteknik och Matlab. Objektorienterad programmering. Vad är vitsen med att ha både metoder och data i objekten?

Repetition C-programmering

Filsäkerhet i Windows NT (NTFS)

Föreläsning 2 Datastrukturer (DAT037)

Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek

Introduktion till Datalogi DD1339. Föreläsning 2 22 sept 2014

Karlstads Universitet, Datavetenskap 1

Design av interaktiv multimedia. Läs i förväg om det som övningarna kommer att beröra. Träna hemma både före och efter övningarna.

729G74 IT och programmering, grundkurs. Tema 3. Föreläsning 2 Jody Foo,

Föreläsning 3: Booleans, if, switch

Övningar Lektion3 Avancerade Webbteknologier 2

Introduktion till objektorientering. Vad är objektorientering egentligen? Hur relaterar det till datatyper? Hur relaterar det till verkligheten?

Objektorienterad programmering Föreläsning 2

int iarray[]= new int[3]; // deklarera ett heltalsfält med tre heltal int jarray[]={ 1, 3, 5, 7, 9, 11, 13, 15}; // initierat fält 8 element

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 2. Laboration 2 Datastrukturer En liten uppgift Frågor

Objektorienterad Programkonstruktion. Föreläsning 4 8 nov 2016

Bankkonto - övning. Övning 2 Skriv en metod, geträntan, som returnerar räntan.

2D1339 Programkonstruktion för F1, ht 2003

C++ Objektorientering - Klasser. Eric Elfving Institutionen för datavetenskap

Dagens föreläsning Programmering i Lisp. - Bindning av variabler (avs 14.6) fria variabler statisk/lexikalisk och dynamisk bindning

TDP002 - Imperativ programmering

Laboration 1 - Grunderna för OOP i Java

F9 - Polymorfism. ID1004 Objektorienterad programmering Fredrik Kilander

Repetition i Python 3. Exemplen fac. Exemplen fac motivering. Exemplen fac i Python

Saker du ska kunna Föreläsning 13 & 14

Static vs Dynamic binding Polymorfism. Objekt-orienterad programmering och design Alex Gerdes, 2016

Imperativ och Funktionell Programmering i Python #TDDD73. Fredrik Heintz,

Programmering B med Visual C

Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p

TUTORIAL: KLASSER & OBJEKT

JavaScript. Innehåll. Historia. Document object model DHTML. Varför Javascript?

Samlingar, Gränssitt och Programkonstruktion! Förelasning 11!! TDA540 Objektorienterad Programmering!

Lab5 för prgmedcl04 Grafik

TENTAMEN OOP

VHDL 1. Programmerbara kretsar

Transkript:

Entity Framework

Förstå grunderna i LINQ Mål med lektionen!

Vad lektionen omfattar Genomgång av Lab 2 Kort repetition av pelarna i ett EF Projekt Extension methods Deferred Execution LINQ & LINQ med Lambda

Hjälp(Helper) metoder Förutom våra metoder som innehåller själva grundläggande logiken för vår applikation finns det även annan typ av kod som vi behöver Ett exempel på sån kod är hjälper metoder Hjälp-metoder är metoder som ger oss funktionalitet/logik som är ofta återkommande. Detta kan t ex var en beräkning eller en omvandling Läggs ofta i en Statisk klass så att vi sedan kan kalla på metoderna i vår applikation utan att skapa en instans av den

Demo Hjälp(Helper) metoder

Extension metoder Vi kan skapa hjälp metoder som kopplas till en specifik typ Vi behöver då i vår kod inte ha med den statiska klassens namn utan kan kalla på den direkt från den typen den implementerats på T ex. istället för att skiva StringUtils.ToDouble(myString) kan vi skriva mystring.todouble() För att det ska fungera måste vi ha med den statiska klassens namn i ett using statement i vår klass om extension klassen inte är med i vårt namespace

Extension metoder (forts) Vår klass ska vara en statisk klass Så att vi kan kalla på den utan att skapa en instans av den Metoden vi skriver måste också vara statisk Vi använder this-nyckelordet för att göra en metod till en extension metod. Metoden kommer att bli en extension-metod till den första typen vi deklarerar i vår metod signatur

Demo Extension metoder

IEnumerable IEnumerable är den som gör att vi kan göra en foreach-loop Genom den metoden som heter GetEnumerator ICollection som ärver från IEnumerable ger ytterliggare funktionaliet IList som ärver av ICollection ger oss t ex Add metoden List -> IList -> ICollection -> IEnumerable Linq ger oss en uppsättning av extension metoder som vi kan använda på IEnumerable

Varför LINQ? Vi vill kunna ställa frågor till våra Objekt/Listor/Arrays för att få ut data Objekten kan t ex vara en lista av strängar, en lista med Objekt eller kanske enititeter från Entity Framework För att göra detta kam man klassiskt skriv en foreach/eller forloop. Vill vi ha vissa villkor får vi använda if satser T ex Bara personer vars namn startar på A Vill vi sedan t ex sortera vår resultat så får vi skriva ytterligare kod

Demo Söka fram information från en Lista

LINQ Linq hälper oss att ställa de här frågorna genom att ge oss en SQL liknande syntax Vi slipper alltså skriva flera loopar/if-satser och mer kod för att sortera. Vår kod blir enklare att läsa, tydligare, effektivare för oss som utvecklare och lättare att underhålla. Linq är i princip en uppsättning av Extension metoder som vi kan använda på IEnumerable. För att kunna använda det behöver vi referera in System.Linq namespacet

Demo Linq

LINQ med Lambda Grundtanken när Linq skapades var att koden vi skriver ska vara så nära som möjligt som sättet vi pratar, utrycker saker på. T ex från listan personer ger mig alla personer som börjar på A Grunden i Linq gör att vi kommer närmare det men vi kan komma ännu närmare med Linq och lambda Ex persons.where(p => p.firstname.startswith("a")) Detta kan vi jämföra med en foreach loop

Demo Linq med Lambda

Deferred Execution När vi skiver vår Linq fråga skriver vi vad som ska utföras. Vi har dock INTE kört frågan ännu. Frågan körs först när vi använder frågan Detta spelar stor roll i vad vi får tillbaka. Vi måste vara försiktiga så att vi får tillbaka de resultat vi förväntar oss Att frågorna körs först när vi kallar på dem kallas för Deferred Execution

Linq/Lambda de vanligaste operatorerna.where.orderby Sorts the elements in the collection based on specified fields in ascending or decending order..skip Skips elements up to a specified position starting from the first element in a sequence..take Takes elements up to a specified position starting from the first element in a sequence..first Returns the first element of a collection, or the first element that satisfies a condition..last Returns the last element of a collection, or the last element that satisfies a condition.contains The Contains operator checks whether a specified element exists in the collection or not and returns a boolean

Lab 3