Невозможно создать постоянное значение типа 'Тип закрытия' - PullRequest
1 голос
/ 18 февраля 2011

Вот мой запрос linq to entity, и я получаю эту ошибку

"Невозможно создать постоянное значение типа« Тип закрытия ». В этом контексте поддерживаются только примитивные типы (такие как Int32, String и Guid). «

Кто-нибудь знает, как это исправить или обойти.

PS. Я использую Linq to Entity , а не Linq to SQL

List<int> listint
List<int> listintTwo

  return (from oa in _entity.TableOne
          join cc in _entity.TableTwo on oa.TableSix.ColumnOne equals cc.TableSix.ColumnOne
          join os in _entity.TableThree on oa.TableThree.ColumnTwo equals os.ColumnTwo
          join cs in _entity.TableTwotatus on cc.TableTwotatus.ColumnThree equals cs.ColumnThree
          join app in _entity.TableFour on cc.TableFour.ColumnFour equals app.ColumnFour
          join cl in _entity.TableFive on app.TableFive.ColumnFive equals cl.ColumnFive
          where listint.Any(x =>x == cc.TableTwotatus.ColumnThree)
          && listintTwo.Any(x => x == os.ColumnTwo) && cc.TableSix.ColumnOne == ColumnOne 
          select new TableFive {ColumnFive = cl.ColumnFive, CompanyName = cl.CompanyName}).ToList();

Ответы [ 2 ]

1 голос
/ 19 февраля 2011

Попробуйте изменить свои звонки на Any(...) на Contains(...)

where listint.Contains(cc.TableTwotatus.ColumnThree)
&& listintTwo.Contains(os.ColumnTwo) && ...

Я почти уверен, что у вас проблемы с ссылками на объединенную сущность из лямбда-выражений (действующих как замыкания).

0 голосов
/ 11 ноября 2014

Вы не можете запрашивать объекты со сложными типами. Поэтому сначала получите результат из EF, а затем присоединитесь к вашему сложному типу.

<code>List<int> listint
List<int> listintTwo

return (from oa in _entity.TableOne
      join cc in _entity.TableTwo on oa.TableSix.ColumnOne equals cc.TableSix.ColumnOne
      join os in _entity.TableThree on oa.TableThree.ColumnTwo equals os.ColumnTwo
      join cs in _entity.TableTwotatus on cc.TableTwotatus.ColumnThree equals cs.ColumnThree
      join app in _entity.TableFour on cc.TableFour.ColumnFour equals app.ColumnFour
      join cl in _entity.TableFive on app.TableFive.ColumnFive equals cl.ColumnFive).ToList().
      where listint.Any(x =>x == cc.TableTwotatus.ColumnThree)
      && listintTwo.Any(x => x == os.ColumnTwo) && cc.TableSix.ColumnOne == ColumnOne 
      select new TableFive {ColumnFive = cl.ColumnFive, CompanyName = cl.CompanyName}).ToList();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...