枚举类型字段上的EntityObjectDatasource和where子句

本文关键字:where 子句 EntityObjectDatasource 类型 字段 枚举 | 更新日期: 2023-09-27 17:53:35

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

我将一个Gridview和一个EntityDataSource绑定到它。到目前为止,一切都很好。

但是如何在MyEntity.MyEnumProperty上指定WHERE子句呢?

以下是我到目前为止所做的尝试:

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

我还试图将Int32设置为paramsDbType,但它失败了。此外,我试图将其绑定到控件或指定默认值,但它总是失败,说不可能将String值转换为MyEnum

我知道这可能很简单,但是我所有的谷歌搜索都没有得到关于这个的答案。

枚举类型字段上的EntityObjectDatasource和where子句

终于很简单了。

最简单的方法是手动指定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>