如何在Linq中以MM / dd / yyyy格式获取数据

时间:2011-12-09 11:57:48

标签: asp.net-mvc-3

我网站上的登录验证基于三个参数,其中一个参数是出生日期。向用户提供DatePicker以选择日期。日期保存在数据库中的格式为MM / dd / yyyy。

当检查身份验证时,Linq查询没有返回任何结果,因为数据库中的记录是MM / dd / yyyy,从视图传递到控制器的值是dd / mm / yyyy.Hence我没有得到任何输出。

以下是我在控制器中所做的事情的代码。

[HttpPost]
        public ActionResult Login(LoginTable log)
        {
            var login = from a in db.LoginTables
                        where a.DOB== log.DOB
                        select a;
        }

我也试过

var login = from a in db.LoginTables
                            where a.DOB== log.DOB.toString("MM/dd/yyyy")
                            select a;

但是给出错误(No Overload方法'ToString()'需要1个参数)

我该怎么办?

1 个答案:

答案 0 :(得分:2)

这是失败的原因是因为LINQ被翻译成SQL语法,并且在SQL中没有等效的ToString

鉴于log是您方法的参数,为什么不能简单地使用:

[HttpPost]
public ActionResult Login(LoginTable log)
{
    string DOBString = log.DOB.ToString("MM/dd/yyyy");

    var login = from a in db.LoginTables
                where a.DOB == DOBString
                select a;
}