如何过滤实体数据源的基础上一年,如果我有日期

本文关键字:上一年 如果 日期 何过滤 过滤 数据源 实体 | 更新日期: 2023-09-27 18:06:49

我有一个实体,它有以下列:

  1. ID
  2. <
  3. 名称/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>

在这篇文章中你可以找到更多的细节