Невозможно привести тип System.Int32 к типу System.Object. LINQ to Entities поддерживает только приведение типов примитивов Entity Data Model - PullRequest
0 голосов
/ 06 апреля 2011

Я использую LINQ to Entities и получаю следующую ошибку во время выполнения.«Невозможно привести тип« System.Int32 »к типу« System.Object ». LINQ to Entities поддерживает только приведение типов примитивов модели данных Entity».

Оператор LINQ выглядит следующим образом:

(From item In _EntityObject.SystemUsers
 Where item.Username = UsernameValue And
     Not Equals(item.ID, IDValue)
 Select item.Active).Count

Когда для IDValue установлено значение Ничего , запрос выполняется отлично, в то время как при установке значения Целое число я получаю вышеуказанную ошибку. item.ID является свойством типа Integer, тогда как IDValue имеет тип Nullable (Of Integer) .

У меня тот же запрос LINQ, которыйразличные поля, которые я использую в другом месте, который работает отлично.

(From item In _EntityObject.Languages
 Where item.Reference = Reference And
     Not Equals(item.ID, ID)
 Select item.Name).Count

Ответы [ 2 ]

1 голос
/ 06 апреля 2011

просто используйте знак =

(From item In _EntityObject.SystemUsers
 Where item.Username = UsernameValue And
     Not (item.ID = IDValue)
 Select item.Active).Count
0 голосов
/ 07 апреля 2011

Проблема решена с помощью следующего утверждения:

(From item In _EntityObject.SystemUsers Where 
item.Username = Username And (Not (item.ID = IDValue)
 Or IDValue Is Nothing) Select item.Name).Count)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...