J'ai plusieurs tables centrées autour d'une table d'organisation qui contient simplement une valeur d'ID unique. Chaque organisation peut alors être à un endroit particulier et avoir un nom particulier. La partie délicate est que les organisations prennent en charge les changements d'emplacement et de nom avec une date d'entrée en vigueur spécifiée de chaque changement. Pour cet exemple, j'ai 4 tableaux pertinents:Syntaxe LINQ to SQL Query
Organisation: ID (PK, int, identité)
Lieu: ID (PK, int, identité), nom (varchar), AltLat (float), AltLong (flotteur)
organization_locations: organization_id (FK, int), le lieu (FK, int), eff_date (datetime)
organization_names: organization_id (FK, int), nom (ntext), eff_date (datetime), icône (nvarchar (100))
Ce que j'ai besoin de récupérer est la liste de tous les emplacements avec toutes les organisations à un endroit donné à une date spécifique et les projeter dans mes entités commerciales. En d'autres termes, j'aurai une date fournie et je devrais retourner pour chaque emplacement, l'organisation liée à l'entrée organization_location avec le plus récent eff_date qui est inférieur à la date fournie. La même chose vaut pour chaque organisation, j'aurais besoin du nom à la date.
Voici ce que j'ai commencé avec, mais il ne semble pas fonctionner:
Dim query = From loc In dc.Locations _
Where loc.AltLong IsNot Nothing And loc.AltLat IsNot Nothing _
Select New AnnexA.Entities.AnnexALocation With {.ID = loc.ID, .Name = loc.Location, .Y = loc.AltLat, .X = loc.AltLong, _
.Units = From ol In loc.organization_locations Let o = ol.Organization.organization_names.Where(Function(ed) (ol.eff_date < Date.Parse("1/1/2011"))).OrderByDescending(Function(od) (od.eff_date)).First() Select New AnnexA.Entities.AnnexAMillitaryUnit With {.ID = o.ID, .Name = o.name, .IconPath = o.icon}}
Je préfère la syntaxe VB mais si vous ne pouvez me donner une requête C# je peux travailler avec ça. J'ai essayé quelques autres variations mais je finis par obtenir des erreurs de syntaxe sur un "}" attendu ou des membres ne faisant pas partie d'un ensemble d'entités, peu importe la combinaison de parenthèses que j'essaie.
"Ne semble pas fonctionner" - mauvais résultats, ou exception du compilateur? Plus de détails s'il vous plaît. –