Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[LINQ to SQL] Sequence operators not supported for type...

Pagina: 1
Acties:

  • creator1988
  • Registratie: Januari 2007
  • Laatst online: 18-11 22:35
Hola, ik probeer wat te doen met databinding vanuit Linq to SQL. Nou probeerde ik een IIF te verwerken in mijn query, gaat prima. Alleen moet er afhankelijk van de waarde van de IIF uit een andere tabel wat gelezen worden, ik had dit bedacht

code:
1
2
3
4
5
        Dim x = From a In db.Urens Select a.Begin, _
            a.Einde, Beschrijving = IIf(a.werkzaamheidsub_id >= 900, _
            (CStr(From b In db.References.Single(Function(m) m.reference_code = a.werkzaamheidsub_id).reference_description)), _
            CStr(a.WerkzaamhedenSub.Werkzaamheden.Beschrijving & " > " & a.WerkzaamhedenSub.Beschrijving)), _
            a.ID


Nou werkt dit niet want ik krijg de volgende foutcode (met wel twee hele resultaten op google):

Sequence operators not supported for type 'System.String'

Dus hierbij twee vragen:

1. Mag je uberhaubt doen wat ik doe?
2. Zoja, wat is een sequence operator? (sequence snap ik, maar wat is hier de sequence operator? de IIF, of m.reference_code=a.werkzaamheidsub_id ?)
3. En waarom zou hij een fout throwen?

  • EfBe
  • Registratie: Januari 2000
  • Niet online
Sequence operators zijn 'Where', 'Select' etc. Dit soort foutmeldingen krijg je als je een functie aanroept op een resultaat van een query die niet een value is maar een sequence.

IIF wordt een 'ConditionalExpression' intern, en dat zou wel moeten werken, maar ik denk dat die CStr calls de oorzaak zijn. Die zijn overbodig, daar de values die je selecteert al strings zijn.

Creator of: LLBLGen Pro | Camera mods for games
Photography portfolio: https://fransbouma.com


  • creator1988
  • Registratie: Januari 2007
  • Laatst online: 18-11 22:35
EfBe schreef op dinsdag 12 februari 2008 @ 13:04:
Sequence operators zijn 'Where', 'Select' etc. Dit soort foutmeldingen krijg je als je een functie aanroept op een resultaat van een query die niet een value is maar een sequence.

IIF wordt een 'ConditionalExpression' intern, en dat zou wel moeten werken, maar ik denk dat die CStr calls de oorzaak zijn. Die zijn overbodig, daar de values die je selecteert al strings zijn.
Cstr is niet het probleem volgens mij

code:
1
2
3
4
5
        'Dim x = From a In db.Urens Select a.Begin, a.gebruiker_id, _
        '     a.Einde, Beschrijving = IIf(a.werkzaamheidsub_id >= 900, _
        '     (CStr(a.werkzaamheidsub_id)), _
        '     CStr(a.WerkzaamhedenSub.Werkzaamheden.Beschrijving & " > " & a.WerkzaamhedenSub.Beschrijving)), _
        '     a.ID() Where gebruiker_id = CStr(Session("CurrentUser"))


doet het gewoon (zonder ' dan natuurlijk :9)

en ik krijg deze foutmelding zonder CStr op de functie in de SP
The IIF method returns two separate types: IEnumerable`1, String. Translation to SQL does not support different return types.

Het true statement in de IIF is wel een gewoon een string.

http://www.100procentjan....zymr42xd1e2o4ec8rxty8.png

als ik op het einde (dus na de 2 )'s ) een .tostring uitvoer dan krijg ik weer dezelfde foutmelding als eerst.

  • EfBe
  • Registratie: Januari 2000
  • Niet online
Vaag, die 'Single' call returnt een value, niet een enumerable...

Creator of: LLBLGen Pro | Camera mods for games
Photography portfolio: https://fransbouma.com


  • creator1988
  • Registratie: Januari 2007
  • Laatst online: 18-11 22:35
Nee, het is gewoon heel apart. Ik ga wel wat kloten om die linq-collection runtime aan te passen, DayPilot weigert me toegang te geven tot haar collection aan records..