Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Returnera anynonymt Linq-svar från funktion?

Postades av 2009-04-01 10:39:27 - Niklas Jansson, i forum vb.net, Tråden har 8 Kommentarer och lästs av 1598 personer

Hittade inget vettigt när jag sökte på detta. De exempel jag såg var för C#, och eftersom jag tyvärr är fast i VB.NET, och jag tror att detta är ett av de ställena där C# och VB.NET diffar så söker jag mig hit...

Låt säga att vi har två klasser:

Company
ID
Name

Employee
ID
Name
CompanyID

Nu har jag funktioner
GetEmployeeList() As List(Of Employee)
GetCompanyList() As List(Of Company)

Och jag vill bara joina dem, men göra det i en funktion. Vad jag försöker med då blir ju:

Function GetEmployeeAndCompany() As ?
Return (From e in GetEmployeeList() Join _
c in GetCompanyList() on e.CompanyID Equals c.ID
Select e, c)
End Function

Men vad sätter jag för returtyp? Kör jag bara med IQueryable får jag ju ingen intellisense och det blir inte typsäkert.
Måste man skapa en separat "EmployeeAndCompany"-klass?
Eller måste man lägga in koden i varje funktion?

För om jag kör:
Dim x = (From e in GetEmployeeList() Join _
c in GetCompanyList() on e.CompanyID Equals c.ID
Select e, c)
Så får jag intellisense på x.e.ID. Vad är det jag har missat?


Svara

Sv: Returnera anynonymt Linq-svar från funktion?

Postades av 2009-04-01 10:47:22 - Simon Dahlbacka

anonyma typer kan bara användas inne i en metod, så du hamnar nog på nån workaround typ dom du beskrev.


Svara

Sv:Returnera anynonymt Linq-svar från funktion?

Postades av 2009-04-01 11:26:28 - Niklas Jansson

Satan i helvete. Tack.

Då skippar jag det och gör en fullösning. =)


Svara

PresentationModel - Sv: Returnera anynonymt Linq-svar från funktion?

Postades av 2009-04-21 11:43:49 - Jon Wiberg

Tycker det låter som att du vill kombinera dem pga presentationsbehov?

Ett förslag då är att använda dig av inspiration från http://martinfowler.com/eaaDev/PresentationModel.html


Gillar du riktiga fullösningar så borde du kunna returnera en lista av Employee
och för varje eg. Company-instans skapa en Employee-instans med tex companyID = 0 (magiskt nummer då du antagligen har en räknare som börjar på 1? )
EgenskapernaID och Name är ju samma dem emellan.


Svara

Sv: PresentationModel -Returnera anynonymt Linq-svar från funktion?

Postades av 2009-04-21 12:14:25 - Niklas Jansson

<b>>Ett förslag då är att använda dig av inspiration från [...]</b>
Jepp, det är förstås en tänkbar lösning, och grovt sett det jag menar med "skapa en separat "EmployeeAndCompany"-klass".

I en annan situation behöver jag verkligen kombinera på samma sätt, och då handlar det inte om presentation. I det fallet kan det dock vara en feldesign från min sida (klassisk "designat för databasen istället för oo").

<b>>Gillar du riktiga fullösningar så borde du kunna returnera en lista av Employee
och för varje eg. Company-instans skapa en Employee-instans med tex companyID = 0 (magiskt nummer då du antagligen har en räknare som börjar på 1? )
EgenskapernaID och Name är ju samma dem emellan.</b>
För det första så är det ju bara ett exempel, låt säga att employee har BirthDate och Company har Address. Då funkar det ju inte, och då måste jag skaffa en ny klass ändå.

Oavsett så är det ju ändå ingen vidare lösning, då hamnar ju employee och company på olika rader, hela poängen är ju att jag ska se employee och company tillsammans.


Svara

Linq -Returnera anynonymt Linq-svar från funktion?

Postades av 2009-04-21 14:49:02 - Jon Wiberg

Du hade då kunnat använda Group By och en del andra lösningar för att få dem i önskad ordning... men nog om detta då det tydligen inte var med exakt de exempelklasser som du angett.

Bra, då vet du iaf om en OO-lösning så då lämnar jag den oxå därhän utan mer snack om den.

Ett alternativt sätt är att läsa in dem båda och loopa ut resultetet genom att för varje då i ditt exempel company läsa ut relaterade employee (baserat på ditt ID dom du hade) MHA Linq fråga; detta kan du ju göra på en himla massa sätt som du säkert vet om men jag skriver för andra som läser samma tråd ändå för sakens skull...

* databinda mot kollektionen av Company och senare
antingen mha händelser för databunden kontroll
eller med metod som anropas i din aspx mha #
skicka in company ID och mha Linq mot kollektion av Employee databinda de data du vll ha för varje
tex med nestad repeater mm.
(och jag menar å naturligtvis LINQ som in memory query och inte Linq to sql)


Jag avslutar med att ge 2 ytterligare länkexempel; dessa visar på möjlighet att använda anonyma datatyper.

(och JA de är i c# men du kan kanske på egen hand använda online-konverterare c# till vb på de kodexempel som ges i länkarna.)


http://www.west-wind.com/weblog/posts/189329.aspx
http://tomasp.net/blog/cannot-return-anonymous-type-from-method.aspx


Svara

Sv: Linq -Returnera anynonymt Linq-svar från funktion?

Postades av 2009-04-21 15:07:51 - Niklas Jansson

Förtydligande: jag kör inte ASP.NET, det här är winforms.


Svara

Sv:Linq -Returnera anynonymt Linq-svar från funktion?

Postades av 2009-04-23 13:38:37 - Jon Wiberg

Ok Niklas.

Lycka till i fortsättningen...
jag hoppas att du ändock fick ut ngt av ngn av länkarna.

Av din i mitt tycke lite tråkiga feeback på ärligt menade försök till hjälp, är mitt slutliga svar
>>Google<<
Där kan du förmå Google att söka på JUST det DU vill ha och "menar" (och exkludera det du inte vill ha).


Svara

Sv: Linq -Returnera anynonymt Linq-svar från funktion?

Postades av 2009-04-23 14:01:08 - Niklas Jansson

Eh, jag menade inget illa. Jag hade lite bråttom och tyckte det var bättre att svara och förtydliga mig, eftersom asp.net vs winforms ändå har rätt stora skillnader.

Men om du kollar på min grundfråga så är det ju ändå så att alla lösningarna utom att just generera "presentationsmaterial" utgår ifrån en ganska hårt kopplad kodning, det var just det jag ville komma ifrån utan att behöva skapa nya klasser. Ok?

Det är lite synd att Generics är så begränsade, annars hade det gått att lösa rätt snyggt där.


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 153
27 952
271 704
1 013
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies