2

我的Entity模型中有一个Enumeration类型属性。

我将 aGridview与 an绑定EntityDataSource到它。到现在为止,一切都很好。

但是如何WHERE在 a 上指定一个子句MyEntity.MyEnumProperty

这是我到目前为止所尝试的:

Convert.ToInt32(it.MyEnumProperty) = @MyParam // Does not work
CONVERT(it.MyEnumProperty AS INT) = @MyParam // Still does not work

我也尝试将这两个值都设置Int32DbTypemy ,但它失败了。params另外,我尝试将其绑定到控件或指定默认值,但总是失败,说无法将String值转换为MyEnum.

我知道这可能很简单,但我对谷歌的所有研究都没有给出答案。

4

1 回答 1

3

最后很简单。

最简单的方法是手动指定我的 where 子句并转换它。我在某个地方找到了这个答案,说这是不可能的。不是,但仅在以前的版本中,但与 EF4 完美配合。

这是我的 where 子句:

<asp:EntityDataSource [...]
    Where="CAST(it.MyEnumProperty AS System.Int32) = @MyParamInWhereClauseWith">
    <WhereParameters>
        <asp:Parameter Name="MyEnumProperty" DbType="Int32" DefaultValue="1" />
    </WhereParameters>
</asp:EntityDataSource>
于 2013-01-17T19:42:47.097 回答