我有一个看起来像这样的测试用例:
[TestMethod]
public void Things_can_be_saved()
{
var ts = DateTime.Now;
var thing = new Thing()
{
Name = "Some name",
TimeStamp = ts
};
// save it
var context = new MyDataContext(testDb);
context.Things.Add(thing);
context.SaveChanges();
// pull from a fresh context so we know it's a db pull not cached
var context2 = new MyDataContext(testDb);
var fetched = context2.Things.FirstOrDefault(t => t.TimeStamp == ts);
Assert.AreEqual(thing.Name, fetched.Name);
}
因此,当我运行它时,我可以查看数据库并查看数据库中存在的“事物”。我可以看到它存储的 Timestamp 列在运行时等于 ts 变量中的值。但是 'fetched' 为 null,表示 EF 在 FirstOrDefault 查询中找不到它。关于 DateTime 平等,我有什么遗漏吗?