C# Linq选择比特定日期更新的所有记录
我有一个简单的查询,我想得到一个特定日期比6年前更新的所有数据 我的代码如下所示: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
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)