3

私はスカラー関数を持っています:

CREATE FUNCTION [dbo].[CheckLocation]
(
    @locationId Int
)
RETURNS bit
AS
BEGIN
    //code
END

Entity Framework コンテキストで使用したい。

これを *.edmx ファイルに追加しました。

<Function Name="CheckLocation" ReturnType="bit" Aggregate="false" BuiltIn="false" NiladicFunction="false" IsComposable="true" ParameterTypeSemantics="AllowImplicitConversion" Schema="dbo" >
<Parameter Name="locationId" Type="int" Mode="In" />
</Function>

EdmFunctionAttribute で装飾されたメソッドを持つ部分クラスも作成しました。

public partial class MainModelContainer
{
    [EdmFunction("MainModel.Store", "CheckLocation")]
    public bool CheckLocation(int locationId)
    {
        throw new NotSupportedException("Direct calls not supported");
    }
}

この関数を次のように使用しようとしています。

Context.CheckLocation(locationId);

NotSupportedException("直接呼び出しはサポートされていません") を取得します。Selectメソッド内で動作しますが、私には合いません。助けてください!select メソッドなしでこの関数を呼び出すにはどうすればよいですか?

4

1 に答える 1

2

選択としてアクセスする必要があります

var students = context.Locations
    .Select ( new  {  location= CheckLocation(locationId)}):
于 2012-09-12T17:16:27.033 に答える