0

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 を認識していないためです。

それを行う方法はありますか?

4

2 に答える 2

0

次のように関数をラップできますが、意味があるとは思いません。

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

    public static string StringConvert(decimal? x)
    {
        return SqlFunctions.StringConvert(x);
    }
}
于 2011-10-20T03:03:57.743 に答える
0

EF ですべてを SQL に変換できるようにする場合は、さらに作業を行う必要があります。 -関数-in-entity-framework.aspx

于 2011-10-20T03:13:44.777 に答える