0

私は次のようなテストケースを持っていました:

[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の同等性について私が見逃しているものはありますか?

4

1 に答える 1

2

データベースの列をdatetimeではなくdatetime2に変更する必要がある可能性があります

このスレッドも参照してください:SQLServerのDateTime2とDateTime

于 2012-12-03T05:32:25.433 に答える