我将尝试在C# datetime和SQL datetime之间进行相等比较,然而由于存储这些值的精度问题,似乎该操作会失败。
假设我有一个非常简单的SQL表,拥有以下字段:
ID (PK, int, not null) - identity
Title (text, null)
UpdateTime (datetime, not null)
我通过Entity Framework创建一个类对象,将其更新时间设置为DateTime.Now,如下所示:
DateTime now = DateTime.Now;
Title.UpdateTime = now;
当我将我的新对象插入表格时,所有值似乎都被正确存储了。现在我想要为我的对象创建的ID。
这就是问题出现的地方。我尝试通过LINQ获取ID:
Title.ID = context.DBTitles.Where(x=>x.UpdateTime == now).FirstOrDefault().ID;
由于查询返回null,尽管我插入的“现在”应该与插入到我的表中的“现在”相同,因此会引发异常。
所以我的问题是:如何确保我的C# datetime等同于存储在SQL中的datetime?最好的方法是获取我的ID吗?