У меня есть куча (~ 20) внешних таблиц, с которыми я работаю для приложения. У меня проблема с большим запросом, который, я думаю, я частично отследил, но я застрял в фактическом решении. Here - скриншот моего edmx, показывающий две таблицы и отношения.Внешние таблицы EntityFramework, не получающие все данные
Всякий раз, когда я выбираю Socs
из базы данных (через _db.Socs.ToList()
), я ожидаю каждый Soc
иметь список OccupationalEmploymentStatistics
. Тем не менее, поведение, которое я вижу, заключается в том, что только ПервыйSoc
имеет любой OccupationalEmploymentStatistics
(по крайней мере, отлаживая и просматривая вручную около 20 из 841 записей. Все 841 записей должны иметь OccupationalEmploymentStatistics
, хотя это поле с нулевым значением).
Когда я попытался отфильтровывать в только SOCS с oes
, через это: var allSocs = _db.Socs.Where(x => x.OccupationalEmploymentStatistics != null).ToList();
, я получаю
Cannot compare elements of type 'System.Collections.Generic.ICollection`1[[MCCDIP.SPA.Data.OccupationalEmploymentStatistic, MCCDIP.SPA.Data, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]'. Only primitive types, enumeration types and entity types are supported.
Я полностью в недоумении, что происходит здесь.
Предложение where, которое у вас есть, пытается сравнить объект с! = Null. Предложение where может использоваться только против тинов, таких как int и string, следовательно, ошибка примитивных типов, если вы хотите сравнить сравнение с объектом Any, а не там, где – bilpor
Правильно ... Просто понял это. Хорошо, это позаботится, и я, кажется, получаю их сейчас, пока я перечисляю ProfationalEmploymentStatistics. У меня все еще есть эта проблема: http://stackoverflow.com/questions/42249043/entityframework-query-returns-the-same-object-for-relationship –
Вы не упомянули, используете ли вы ленивую загрузку или нет, и из-за отсутствия фрагмента кода я также не знаю, был ли ваш DbContext (_db) удален или нет. – jannagy02