2010-04-02 2 views
1

Я пытаюсь получить мой запрос linq для репликации моего t-sql, но я потерян.Как использовать Contains() в моем соединении

SELECT * 
FROM BaiDetail INNER JOIN 
    BaiDetailMap ON BaiDetail.DetailText 
    LIKE '%' + BaiDetailMap.BaiDetailMapSearchText +'%' 

Это то, что у меня до сих пор ... но не идти

from det in Source 
from map in Map 
where det.DetailText.Contains(map.SearchText) 
select new {det, map} 

Сообщение об ошибке:

Только аргументы, которые могут быть оценены на клиенте поддерживаются для String.Contains метод.

+1

взглянуть на этот, это может помочь: http://stackoverflow.com/questions/192126/like-in-linq-to-sql –

ответ

0
from det in Source 
from map in Map 
where SqlMethods.Like(map.DetailText, "%" + map.SearchText + "%")) 
select new {det, map} 
+0

не будет работать: string.Format может быть только оценивается локально, а не в базе данных. –

+0

Попробуйте это вместо этого. – SteadyEddi

+0

SqlMethods.Like работал как шарм! Спасибо. – smiggleworth