Метод Linq-To-Sql не поддерживается? - PullRequest
0 голосов
/ 20 сентября 2010

Я использую запрос, который пытается найти соответствующий уникальный идентификатор (guid), такой как

var myUsers = from u in table
              where u.UniqueIdentifierId == MyClass.GetCurrentUserId()
              select u;

Это выдает ошибку Method Not Supported для моей пользовательской функции.Я перекодировал его, чтобы сделать это

string guid = MyClass.GetCurrentUserId().ToString();

where u.UniqueIdentifierId.ToString() == guid

И это работает.Я хочу знать, есть ли какие-либо другие обходные пути, которые не требуют создания временной переменной.Спасибо.

Ответы [ 2 ]

3 голосов
/ 20 сентября 2010

Вы не можете вызвать его в запросе, потому что LINQ to SQL не может перевести это.Он пытается преобразовать это в вызове SQL.Вам нужно вызвать этот метод вне запроса LINQ следующим образом:

var guid = MyClass.GetCurrentUserId();

var myUsers = 
    from u in table
    where u.UniqueIdentifierId == guid
    select u;
1 голос
/ 20 сентября 2010

Вы пробовали?

var myUsers = from u in table
          where u.UniqueIdentifierId == MyClass.GetCurrentUserId().ToString()
          select u;

Это заставит LINQ to SQL использовать сравнение строк (именно поэтому второй работает)

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