使用lambda表达式按日期过滤

时间:2014-08-18 17:24:22

标签: c# asp.net-mvc lambda sql-server-2008-r2

我正在开始构建一个ASP.NET MVC站点,我陷入了一个可能很简单的问题。我试图使用lambda表达式按日期过滤查询。我试图过滤的其他方法已经成功。这是我想要完成的。数据存储在具有date数据类型的SQL Server 2008 R2数据库中。我不确定这是否是结果不会显示的原因。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Project.Models;

public class CreateController : Controller
{
    // GET: Create
    public ActionResult Create()
    {
        var dt = DateTime.Now.AddDays(-10);           
        var db = new Models.Entities();

        var apps = db.tableName.Where(x => x.col1 == dt);                                        
        return View(apps.OrderBy(x => x.col2));
    }
}

我的观点

@model IEnumerable<Project.Models.table1>
@{
    ViewBag.Title = "Project";
}
    @foreach (var apps in Model)
    {
        <table>
            <tr>
                <th>col z</th>
                <th>col x</th>
                <th>col y</th>
                <th>col w</th>
            </tr>

            <tr>
                <td>@apps.col1</td>
                <td>@apps.col2</td>
                <td>@apps.col3</td>
                <td>@apps.col4</td>    

            </tr> 
        </table>
    }

2 个答案:

答案 0 :(得分:3)

//per lordkain:
var dt = DateTime.Now.Date.AddDays(-10); 

//per Yuliam Chandra:
db.tableName.Where(x => x.col1 >= dt);

答案 1 :(得分:0)

在代码的外观中,c#数据类型是DateTime,数据库中的数据类型是Date。

您可能希望在创建函数时更改代码

var dt = DateTime.Today.AddDays(-10); 

现在代码只是日期,没有时间!