下面是我的另一篇文章(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")