2013-01-16 53 views
2

我有一個Entity在我的模型中有Enumeration類型屬性。EntityObjectDatasource和枚舉類型字段上的where子句

我綁定GridviewEntityDataSource它。到目前爲止,一切都很好。

但是,如何在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

我知道這可能非常簡單,但是我對Google的所有研究都沒有回答這個問題。

+0

感謝Sammitch。我來自魁北克,所以我平常說法語,我的英語有時聽起來很糟糕:) –

回答

3

非常簡單finfin。

最簡單的方法是指定manualy my 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>