J'ai un problème avec Linq dans VB.NET. J'ai créé un fichier .dbml à partir de mon db, et tout semble bien - relation "flèches" entre les tables sont visibles, etcTable liée à Linq erreur non-interrogeable
Mais quand je veux utiliser une requête simple (tiré de 101 échantillons Linq par MS) :
Dim q = From h In dc.Hours, w In h.WorkType
Je reçois une erreur:
Expression of type 'INTegrity.WorkType' is not queryable. Make sure you are not missing an assembly reference and/or namespace import for the LINQ provider.
h.Worktype est visible dans IntelliSense ...
Je peux joindre manuellement dans la requête Linq, mais les relations ne devraient-elles pas être automatiques?
La requête complète qui fonctionne, mais en utilisant « manuel joint » ressemble à ceci:
Dim q1 = From g In dc1.Hours _
Join pr In dc1.WorkType On g.WorkTypeId Equals pr.WorkTypeId _
Where g.WorkerId = workerid _
Select New With {g.EntryId, g.Date, pr.WorkTypeDesc, g.Minutes}
table Worktype a 1 à plusieurs avec table Heures (comme vous pouvez le voir sur la colonne WorkTypeId)
Linq en VB est étranger à moi, mais je suis très familier avec LINQ en C#. Il ne semble pas que vous fassiez quelque chose avec cette requête. Est-ce que vous essayez d'écrire une jointure? Où est votre sélection? – jsmith
L'erreur est affichée lorsque j'écris la première ligne, je ne parviens même pas à sélectionner. Et oui, je voudrais faire une jointure en utilisant les informations de relation du fichier .dbml. – ufoq