LINQ Выбрать ссылку на объект? - PullRequest
1 голос
/ 04 июля 2011

У меня есть иерархия из трех сущностей для телекоммуникационных станций в базе данных SQL Express, и я использую Entity Framework для выполнения некоторых запросов LINQ к ней.

Exchange находится в SubRegion, что в Region. Очевидно, у меня также есть неявные отношения Exchanges в Region.

(Exchange) *...1 (SubRegion) *...1 (Region)
           *.....................1

Иногда пользователь хочет видеть все биржи в регионе или субрегионе. Когда я использую следующий запрос LINQ, я получаю исключение.

Data.Region region = regionComboBox.SelectedItem as Data.Region;

var esas = from esa in JITScheduleContainer.Exchanges
    where esa.SubRegion.Region == region
    select esa;

exchangeComboBox.Items.AddRange(esas.ToArray());

Исключение:

Невозможно создать постоянное значение введите 'CpasJitScheduler.Data.Region'. Только примитивные типы (такие как Int32, String и Guid ') поддерживаются в этот контекст.

Есть ли в модели EF что-либо, что мне нужно сделать, или какой-либо другой способ ссылки на родительский объект родителя?

1 Ответ

1 голос
/ 04 июля 2011

Я забыл, что могу использовать поле int Id для сравнения.Результирующий оператор LINQ:

Data.Region region = regionComboBox.SelectedItem as Data.Region;

var esas = from esa in Container.Exchanges
           where esa.SubRegion.Region.Id == region.Id
           select esa;

exchangeComboBox.Items.AddRange(esas.ToArray());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...