枚举类型字段上的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
设置为params
的DbType
,但它失败了。此外,我试图将其绑定到控件或指定默认值,但它总是失败,说不可能将String
值转换为MyEnum
。
我知道这可能很简单,但是我所有的谷歌搜索都没有得到关于这个的答案。
终于很简单了。
最简单的方法是手动指定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>