如何过滤实体数据源的基础上一年,如果我有日期
本文关键字:上一年 如果 日期 何过滤 过滤 数据源 实体 | 更新日期: 2023-09-27 18:06:49
我有一个实体,它有以下列:
- ID <
- 名称/gh>
我需要在实体数据源中放置一个where条件,类似于:
year(it.Date)=@year -- is not working !!!
我试着选择:
Select year(it.Date) as xYear...
then in Where condition I put:
it.xYear = @year --- is not working !!!
谁能给我一个解决办法?我想在EntityDatasource属性窗口中插入一个where语句。
编辑
我通过使用自定义查询来实现它。
<asp:EntityDataSource ID="EntityDataSource1" runat="server" ConnectionString="name=MyEmmoAppEntities" DefaultContainerName="MyEmmoAppEntities" EnableFlattening="False"
Where="" CommandText="select kpivalues .idkpi,kpivalues .ivalue,kpivalues .[date] from kpivalues where year(kpivalues .[date])=2015 and month(kpivalues .[date])=2">
</asp:EntityDataSource>
try this
it.TableName.Where(x=>x.date==@year);
请尝试下面的代码:
int year=2015;
SqlDataSource1.SelectCommand = "SELECT * FROM table it WHERE year(it.Date)=@year";
SqlDataSourceArticole.Parameters.Add("@year", System.Data.DbType.Int32, year);
可以在aspx-File
中指定WhereParameter。<asp:EntityDataSource ID="SearchEntityDataSource" runat="server"
.....
Where="year(it.Date) = @year" >
<WhereParameters>
<asp:ControlParameter ControlID="SearchYearTextBox" Name="year" PropertyName="Text"
Type="Int32" DefaultValue="2015"/>
</WhereParameters>
</asp:EntityDataSource>
<asp:TextBox ID="SearchYearTextBox" runat="server"></asp:TextBox>
在这篇文章中你可以找到更多的细节