我正在使用实体框架 4.3。在我的SQL Server 2008数据库中,我有一些日期存储为日期而不是日期时间。
我需要使用日期字段检索数据,这里是测试代码示例:
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 = new DateTime(1967, 08, 03);
的实际结果是8/3/1967 12:00:00 AM
DateOfBirth
的DataType
是Date
,因此我们需要截断时间。
msdn: EntityFunctions.TruncateTime Method
public static Applicant Create()
{
var dt = new DateTime(1967, 08, 03);
var r = new CrudRepo<Applicant>(UowHelper.GetUow().Context);
return r.FirstOrDefault(a => a.DateOfBirth == EntityFunctions.TruncateTime(dt));
}
或者删除.Single() method
,改用 .FirstOrDefault() 方法
仅
供参考,补充一下spajce的答案,
System.Data.Entity.Core.Objects.EntityFunctions
已弃用到
System.Data.Entity.DbFunctions