私は次のようなテストケースを持っていました:
[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);
}
したがって、これを実行すると、DBを調べて、データベースに「もの」が存在することを確認できます。保存されているTimestamp列は、実行時のts変数の値と等しいことがわかります。ただし、「fetched」はnullであり、EFがFirstOrDefaultクエリでそれを見つけることができないことを示しています。DateTimeの同等性について私が見逃しているものはありますか?