Звучит так, как будто State.REGION
на самом деле представляет собой совокупность Region
сущностей.
В этом случае вы не можете просто получить прямой доступ к навигации BRAND, поскольку ваш оператор пытается получить доступ к свойству BRAND коллекции, а не к свойству BRAND элемента в коллекции.
Если вы пишете этот запрос, используя LINQ to Entities, а не методы построителя запросов, вы можете сделать это следующим образом:
var productQuery = from s in LeadsContext.State
from r in s.REGION
where r.Brand.Brand_ID == brand
orderby s.STATE_ABBR
select s;
Конечно, это не будет охотно загружать REGION (s), так что вы можете подумать, что могли бы написать это:
var productQuery = from s in LeadsContext.State.Include("REGION")
from r in s.REGION
where r.Brand.Brand_ID == brand
orderby s.STATE_ABBR
select s;
Но это не сработает, потому что ваш ВКЛЮЧЕНО теряется, когда вы делаете «Выбрать много» (т.е. from y in z from x in y
).
Таким образом, вы должны выполнить «Включить в конце» следующим образом:
var productQuery = (from s in LeadsContext.State
from r in s.REGION
where r.Brand.Brand_ID == brand
orderby s.STATE_ABBR
select s) as ObjectQuery<State>).Include("REGION");
См. tip 22 * 1020 * для получения дополнительной информации об этом обходном пути.
Я не уверен на 100%, что наши методы построения запросов, то есть где (строка), поддерживают подвыборы, что и требуется.
Так что я не уверен, какой там будет синтаксис.
В любом случае, я надеюсь, что это поможет
Alex