У меня есть несколько таблиц, которые сосредоточены вокруг организационной таблицы, которая просто содержит уникальное значение идентификатора. Каждая организация может быть в определенном месте и иметь конкретное имя. Сложность заключается в том, что организации поддерживают изменения местоположения и имен с указанием даты вступления в силу каждого изменения. Для этого примера у меня есть 4 соответствующие таблицы:
Организация: ID (PK, int, identity)
Местоположение: ID (PK, int, identity), Имя (varchar), AltLat (float), AltLong (float)
organization_locations: organization_id (FK, int), местоположение (FK, int), eff_date (datetime)
имя_организации: идентификатор_организации (FK, int), имя (ntext), дата_эфф. (Дата / время), значок (nvarchar (100))
Мне нужно получить список всех местоположений вместе со всеми организациями в данном месте на определенную дату и спроецировать их в мои бизнес-объекты. Другими словами, у меня будет указана дата, и мне нужно будет вернуть для каждого местоположения организацию, связанную с записью Organization_location с самой последней eff_date, которая меньше указанной даты. То же самое относится к каждой организации, мне нужно было бы название на дату.
Вот то, с чего я начал, но, похоже, это не работает:
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}}
Я бы предпочел синтаксис VB, но если вы можете дать мне только запрос C #, я могу работать с этим. Я пробовал несколько других вариантов, но в итоге получаю синтаксические ошибки об ожидаемом "}" или членах, не являющихся частью набора сущностей, независимо от того, какую комбинацию скобок я пытаюсь использовать.