Кажется, что есть способ игнорировать различия в Linq для SQL с помощью функций t-sql:
CREATE FUNCTION [dbo].[func_ConcatWithoutCollation]
(
@param1 varchar(2000),
@param2 varchar(2000)
)
RETURNS varchar(4000)
AS
BEGIN
IF (@param1 IS NULL) SET @param1 = ''
IF (@param2 IS NULL) SET @param2 = ''
RETURN @param1 COLLATE Latin1_General_CS_AS + @param2 COLLATE Latin1_General_CS_AS
END
чтобы получить эту функцию в linq to sql, есть переключатель для SqlMetal: / functions.
Пример:
"%ProgramFiles%\Microsoft SDKs\Windows\v7.0A\Bin\SqlMetal.exe" /server:. /database:NameOfDatabase /pluralize /code:ContextGenerated.cs /sprocs /views /functions
Используйте эту функцию в Linq to sql следующим образом:
from s in context.Services
where context.Func_ConcatWithoutCollation(s.Description, s.Email) == "whatever"
select s
Это помогло мне, может быть, кто-то тоже найдет это полезным.