Entity framework 实体框架日期时间与SQL Server日期

Entity framework 实体框架日期时间与SQL Server日期,entity-framework,date,entity-framework-4.3,Entity Framework,Date,Entity Framework 4.3,我使用的是实体框架4.3。在我的SQLServer2008DB中,有些日期存储为日期而不是日期时间 我需要使用date字段检索数据,这里是一个测试代码示例: public static Applicant Create() { var dt = new DateTime(1967, 08, 03); var r = new CrudRepo<Applicant>(UowHelper.GetUow().Context);

我使用的是实体框架4.3。在我的SQLServer2008DB中,有些日期存储为日期而不是日期时间

我需要使用date字段检索数据,这里是一个测试代码示例:

    public static Applicant Create()
    {   
        var dt = new DateTime(1967, 08, 03);

        var r = new CrudRepo<Applicant>(UowHelper.GetUow().Context);

        return r.Find(a => a.DateOfBirth == dt).Single();
    }
公共静态申请人创建()
{   
var dt=新日期时间(1967、08、03);
var r=new crudepo(UowHelper.GetUow().Context);
返回r.Find(a=>a.DateOfBirth==dt).Single();
}
然而,我遇到了一个“缺少序列”的问题

我该怎么解决这个问题

我还需要在某个时候更新数据库


谢谢。

var dt=new DateTime(1967、08、03)的实际结果is
1967年8月3日12:00:00 AM

DateOfBirth
数据类型是
Date
,因此我们需要截断时间

msdn:

公共静态申请人创建()
{   
var dt=新日期时间(1967、08、03);

var r=新克鲁德雷波

FYI,补充spajce的答案

System.Data.Entity.Core.Objects.EntityFunctions
已被弃用为

System.Data.Entity.DbFunctions

你在哪一行得到错误?你有没有进入Crudepo代码?检查你能详细说明什么是“缺失序列”吗?是不是“序列不包含元素”?如果是这样的话,那是因为
.Find
没有找到任何元素。什么是
.Find
方法和
r
btw?@Pawel-请查看评论基本上,当我使用linq尝试匹配时,我没有得到匹配-当我返回行时,然后针对dt测试a.DateOfBirth-它工作!!!进行了更改,但仍然得到相同的问题-我已发布了上述错误。Find是一个自定义方法,返回Iqueryable,因此需要single()。尝试替换
.Find()
.FirstOrDefault()
我更新了我的answerdt=a.DateOfBirth-我刚刚测试过,所以我一定是做了些傻事!好吧,奇怪的是。如果我尝试使用a.DateOfBirth=dt进行选择,那么什么都不会返回。如果我使用另一个变量返回行,然后使用a.DateOfBirth和dt进行测试,效果会很好!!奇怪!!明白了!我说这会很傻-w是的,有点。当创建日期时间变量dt时,我得到的月/年是错误的,但是当我输出dt和a.DateOfBirth时,它们都以我希望看到的格式显示,即1967年3月8日,因此我没有注意到dt实际上是1967年8月3日。更正后,你的截断函数对我有效。谢谢。
System.Data.Entity.DbFunctions