C# Linq选择比特定日期更新的所有记录

C# Linq选择比特定日期更新的所有记录,c#,linq,C#,Linq,我有一个简单的查询,我想得到一个特定日期比6年前更新的所有数据 我的代码如下所示: var dt = DateTime.Today.AddYears(-6); return _context.ChildInfo.Where(c => c.ChildDob > dt ); 但这将返回所有记录,而不仅仅是从今天起比6年前更新的记录。我做错了什么 编辑: childdob定义 public partial class ChildInfo { public DateTime? Ch

我有一个简单的查询,我想得到一个特定日期比6年前更新的所有数据

我的代码如下所示:

var dt = DateTime.Today.AddYears(-6);
return _context.ChildInfo.Where(c => c.ChildDob > dt );
但这将返回所有记录,而不仅仅是从今天起比6年前更新的记录。我做错了什么

编辑:

childdob定义

public partial class ChildInfo
{
    public DateTime? ChildDob { get; set; }
}

您的问题是ChildDob是可空的。 你需要:

return _context.ChildInfo.Where(c => c.ChildDob.HasValue && c.ChildDob.Value > dt );
另见:

我觉得没问题-我怀疑这是一个诊断问题,而不是其他问题。这真的,真的不应该获取任何早于6年前的内容……如何实现
ChildDob
?它是否默认为
DateTime.Max
?您可以添加
ChildInfo
类和数据的最小数据结构以进行复制吗?以某种方式删除可空属性解决了此问题。如果这解决了问题,并且您希望保留可空属性,您可以尝试
\u context.ChildInfo.Where(c=>c.ChildDob!=null&&c.ChildDob.Value>dt)