动态Linq表达式中的DbFunction

时间:2019-02-04 22:33:31

标签: linq dynamic-linq rowversion

下面是我的另一篇文章(Byte[] comparison in Linq enumerable)。

是否可以使用DbFunction属性并在EDMX的CSDL部分中定义一个函数,然后从Dynamic Linq表达式中调用它?

粗略的例子:

在Model类中:

[DbFunction("RowVersion", "Compare")]
public static int Compare(byte[] rowversion)
{
    throw new NotSupportedException("Not Supported Exception");
}

CSDL:

<Function Name="Compare" ReturnType="Edm.Int32">
    <Parameter Name="RowVersion" Type="Edm.Binary" />
    <DefiningExpression>
        CAST(RowVersion as int)
    </DefiningExpression>
</Function>

DynamicLinq:

.Where("Compare(RowVersion) > @0, 30000")

0 个答案:

没有答案