Сравнение двух разных типов с Entity Framework - PullRequest
0 голосов
/ 24 января 2012

Предположим, у меня есть таблица Posts с полем Owner типа Person (с полем Name).

Я пытаюсь заставить работать это сокращенное выражение:

from p in Posts where p.Author == "SomeNameAsString" select p;

Это означает, что мне нужно сравнить объект типа Person с string.

Я попытался переопределить Equals и переопределить операторы == и! =, Но яя все еще получаю исключение "DbComparisonExpression требует аргументов с сопоставимыми типами.".

Есть ли способ сделать два разных типа сопоставимыми в Entity Framework?

Ответы [ 2 ]

5 голосов
/ 24 января 2012

EF пытается перевести ваш запрос в SQL, и при этом он, похоже, не учитывает ваши операторы преобразования типов.Просто используйте этот запрос вместо:

from p in Posts where p.Author.Name == "SomeNameAsString" select p;
1 голос
/ 24 января 2012

Вы пробовали

 from p in Posts where p.Author.Name == "SomeNameAsString" select p; 

(если Name является свойством Author)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...