我的模型中有Entity
,其Enumeration
类型属性。
我正在将Gridview
与EntityDataSource
绑定到它。到现在为止,一切都很好。
但是如何在WHERE
上指定MyEntity.MyEnumProperty
条款?
这是我到目前为止所尝试的内容:
Convert.ToInt32(it.MyEnumProperty) = @MyParam // Does not work
CONVERT(it.MyEnumProperty AS INT) = @MyParam // Still does not work
我还试图将Int32
设置为DbType
params
这两个值,但它失败了。此外,我尝试将其绑定到控件或指定默认值,但始终无法将String
值转换为MyEnum
。
我知道这可能很简单,但我对谷歌的所有研究都没有回答这个问题。
答案 0 :(得分:3)
非常简单。
最简单的方法是指定manualy我的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>