Gebruik maken van LINQ

Status
Niet open voor verdere reacties.

lonssie

Gebruiker
Lid geworden
9 okt 2007
Berichten
27
Hallo,

Om mijn programma overzichtelijker te maken wilde ik graag gebruik gaan maken van LINQ.
Als ik het goed heb kan ik hiermee 'gewoon' mijn SQL code in mijn C# code plaatsen.

Als eerste heb ik LINQ Prieview gedownload en geinstalleerd.

Wanneer ik een nieuw project aanmaak kan ik nu het volgende kiezen:

linqscreensh.jpg


Nu heb ik voor LINQ Preview -> Windows Application gekozen, maar wanneer ik bijv. SELECT ... FROM ... in mijn code gebruik krijg ik errors. Heeft iemand een idee wat ik fout doe?


Moet ik per se die LINQ Preview -> Windows Application kiezen, of kan ik ook gewoon Visual C# -> Windows Application kiezen?
Want wat nou als ik LINQ op een bestaand project toe wil passen?

Alvast bedankt!
 
je kan linq ook gebruiken in elk project dat gebruik maakt van Framework 3.0 of hoger.

linq werkt op allerlei soorten collecties.
probeer onderstaande code maar eens:

een voorbeeld met een collectie van strings:
Code:
            string[] greetings = { "hello world", "hello LINQ", "hello there" };
            var items =
            from s in greetings
            where s.EndsWith("LINQ")
            select s;
            foreach (var item in items)
                Console.WriteLine(item);

een voorbeeld met een XML bestand:

Code:
         XElement books = XElement.Parse(
            @"<books>
                <book>
                    <title>Pro LINQ: Language Integrated Query in C# 2008</title>
                    <author>Joe Rattz</author>
                </book>
                <book>
                    <title>Pro WF: Windows Workflow in .NET 3.0</title>
                    <author>Bruce Bukovics</author>
                </book>
                <book>
                    <title>Pro C# 2005 and the .NET 2.0 Platform, Third Edition</title>
                    <author>Andrew Troelsen</author>
                </book>
            </books>");
            var titles = from book in books.Elements("book")
                         where (string)book.Element("author") == "Joe Rattz"
                         select book.Element("title");
            foreach (var title in titles)
                Console.WriteLine(title);

Met het programmaatje:

c:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\sqlMetal.exe

kan je van je database een datalaag genereren die je dan weer met linq kan gebruiken:
Code:
c:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\sqlMetal.exe 
 /server:.  /database:Northwind /user:ikke  /password:geheim  /language:c# /code:nwind.cs   /namespace: nwind


je kan dan de volgende dingen doen:

Code:
 Northwind db = new Northwind(ConfigurationManager.ConnectionStrings["nwind"].ConnectionString);
            db.Log = Console.Out;
            var customers = from customer in db.Customers
                            where customer.City == "Rio de Janeiro"
                            select customer;
            foreach (var c in customers)
            {
                Console.WriteLine("{0}", c.CompanyName);
            }

veel plezier....
 
Misschien een domme vraag, maar waar kan ik zien welke versie van Framework ik heb?

Wanneer ik die eerste code letterlijk gebruik krijg ik een aantal errors, zou dat betekenen dat ik geen Framework 3.0 of hoger heb?

veel plezier....

was dat sarcastisch bedoeld? :rolleyes:
 
nee, het is niet sarcastisch bedoeld.:D
ik vind het een hele mooie aanvulling op csharp.net. zeker in combinatie met SqlMetal.

waarschijnlijk krijg je een melding zoals dit:
"Could not find an implementation of the query pattern ... ect."

attachment.php


je moet dan een reference toevoegen, zoals de melding zegt een reference naar System.Core.dll:

attachment.php


nu werkr het wel ( omdat je met visual webdeveloper express werkt, heb ik de Console.WriteLine veranderd naar Debug.WriteLine():

attachment.php
 

Bijlagen

  • syntaxerror2.jpg
    syntaxerror2.jpg
    68,4 KB · Weergaven: 125
  • addreference2.jpg
    addreference2.jpg
    99 KB · Weergaven: 127
  • resultaat2.jpg
    resultaat2.jpg
    83,7 KB · Weergaven: 189
Misschien een domme vraag, maar waar kan ik zien welke versie van Framework ik heb?
Hi
Domme vraag bestaat niet!
Click op help
en daarna op About microsoft visual c# express edition
dan weet je welke framework dat je hebt?

mvg
Faresc#:rolleyes:
 
Wow met zo'n antwoorden kan ik iets!
Ik heb als eerste even gekeken welke versie van Framework ik heb, en dit is 2.0.nogeenhoopcijfers,
terwijl ik van t weekeind 3.5 gedownload en geinstalleerd heb.

Hier ga ik dus als eerste nog even naar kijken en dan ga ik stap voor stap doen wat die plaatjes zeggen! Bedankt!

Wat me nu te binnen schiet: als ik nou op deze manier ga programmeren, en ik maak er straks een .exe bestand van,
werkt dat dan wel gewoon op alle gangbare computers? Of moet ik daar dan ook nog dingen installeren?
 
Hi
Ik ben student informatica (avond school) 1ste jaar ,ik heb nog niets gestudeeerd over framework maar ik denk dat de meeste recente pc's aanvaarden de exe bestandjes.
Volgens mijn MR KILLERMENS als ik mij niet vergis kan op uw vraag antwoorden:p
mvg
faresc#
 
Wow met zo'n antwoorden kan ik iets!
Ik heb als eerste even gekeken welke versie van Framework ik heb, en dit is 2.0.nogeenhoopcijfers,
terwijl ik van t weekeind 3.5 gedownload en geinstalleerd heb.

Hier ga ik dus als eerste nog even naar kijken en dan ga ik stap voor stap doen wat die plaatjes zeggen! Bedankt!

Wat me nu te binnen schiet: als ik nou op deze manier ga programmeren, en ik maak er straks een .exe bestand van,
werkt dat dan wel gewoon op alle gangbare computers? Of moet ik daar dan ook nog dingen installeren?

Je kan linq ook draaien op .net 2.0. Zie msdn...
 
Ik ga hier weer mee verder als ik een paar andere probleempjes voor elkaar heb gekregen, maar tot zover: Bedankt :D
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan