SqlFunctions обертка - PullRequest
       27

SqlFunctions обертка

0 голосов
/ 20 октября 2011

Я хочу использовать SqlFunctions.StringConvert() во многих местах в разных проектах в моем решении.

Я не хочу, чтобы каждый проект содержал ссылку на system.data.entity, поэтому я решил добавить оболочку в мой Common проект (все другие проекты имеют ссылку на Common).

Какможно написать такую ​​обертку?Если я делаю:

public static class SqlUtils
{
    public static Func<decimal?, string> StringConvert()
    {
        return x => SqlFunctions.StringConvert(x);
    }

    public static Func<double?, string> StringConvert()
    {
        return x => SqlFunctions.StringConvert(x);
    }        
}

Тогда я не могу использовать это как:

query.Where(x => SqlUtils.StringConvert((decimal)x.SerialNumber).Contains(serialNumber));

, потому что структура сущностей не знает метод SqlUtils.StringConvert.

Любойидеи как это сделать?

Ответы [ 2 ]

0 голосов
/ 20 октября 2011

Если вы хотите, чтобы EF мог переводить все это на SQL, вам нужно больше работать, см .: http://blogs.microsoft.co.il/blogs/gilf/archive/2010/01/01/defining-custom-functions-in-entity-framework.aspx

0 голосов
/ 20 октября 2011

Вы можете обернуть функции следующим образом, но я не думаю, что это имеет смысл:

public static class SqlUtils
{
    public static string StringConvert(double? x)
    {
        return SqlFunctions.StringConvert(x);
    }

    public static string StringConvert(decimal? x)
    {
        return SqlFunctions.StringConvert(x);
    }
}
...