я был тест, который выглядит следующим образом:Что-нибудь странное о датах в Entity Framework Linq-запросах?
[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?
Что тип столбца в базе данных? Кроме того, если вы используете дизайнер EDMX, можете ли вы проверить, что такое * StoreGenerationPattern * для свойства 'TimeStamp' ??? – fernandoespinosa
Возможно, вам нужно изменить свой столбец в базе данных, чтобы быть datetime2, а не datetime. – Pawel
Это все код, извините, если это было непонятно, когда я задал вопрос. – Paul