Het probleem is het volgende:
Mijn variabele "query2" moet het type DbQuery(Of x) hebben, waarbij x iets moet zijn. Is dat niet zo dan gaat VS in build-time zeuren dat latere operaties op "query2" niet kunnen, omdat die methodes niet bestaan voor 'geen type'. Dat krijg ik niet verholpen.
Echter, ik kan het niet helemaal expliciet maken, want ik ga met Linq nog Joinen en dan wordt het resultaat een DbQuery(Of anonymous type). Ik hoop dus dat ik voor x 'Object' kan gebruiken, maar helaas lijkt hij ook anonymous types niet naar Object te kunnen casten.
Dit is dus de code:
En dan is dit de foutmelding:
Is er een andere manier om dit te doen? Kan ik het nog explicieter maken in de Join zodat ik er gewoon een echt type aan kan hangen?
Edit: Ik gok dat dit de belangrijkste regel is:
Als ik dat overigens probeer dan krijg ik ongeveer dit probleem: MSDN: Object initializer syntax cannot be used to initialize an instance of type 'Object'
Mijn variabele "query2" moet het type DbQuery(Of x) hebben, waarbij x iets moet zijn. Is dat niet zo dan gaat VS in build-time zeuren dat latere operaties op "query2" niet kunnen, omdat die methodes niet bestaan voor 'geen type'. Dat krijg ik niet verholpen.
Echter, ik kan het niet helemaal expliciet maken, want ik ga met Linq nog Joinen en dan wordt het resultaat een DbQuery(Of anonymous type). Ik hoop dus dat ik voor x 'Object' kan gebruiken, maar helaas lijkt hij ook anonymous types niet naar Object te kunnen casten.
Dit is dus de code:
code:
1
2
3
4
5
6
| Dim query2 As Infrastructure.DbQuery(Of Object) = query1.Join(
db.ActivityResources,
Function(act) act.ID,
Function(res) res.Activity.ID,
Function(act, res) New With {act, res}
) |
En dan is dit de foutmelding:
code:
1
2
3
4
| Unable to cast object of type 'System.Data.Entity.Infrastructure.DbQuery`1[VB$AnonymousType_6`2[Activity,ActivityResource]]' to type 'System.Data.Entity.Infrastructure.DbQuery`1[System.Object]'. |
Is er een andere manier om dit te doen? Kan ik het nog explicieter maken in de Join zodat ik er gewoon een echt type aan kan hangen?
Edit: Ik gok dat dit de belangrijkste regel is:
code:
1
| Function(act, res) New Object With {.Activity = act, .Resource = res} |
Als ik dat overigens probeer dan krijg ik ongeveer dit probleem: MSDN: Object initializer syntax cannot be used to initialize an instance of type 'Object'
[ Voor 14% gewijzigd door Jeroen op 28-05-2014 16:28 ]
"I don't always test my code, but when I do, I test on production."