У меня есть объект со свойством ModifiedDateTime, который я хочу обновить с использованием текущей даты и времени из базы данных вместо сервера «приложения», выполняющего приложение.
Каждый раз, когда я хочу обновить или добавить человека в свою базу данных на SQL Server 2008, я хочу заполнить поле ModifiedDateTime. Я не могу изменить запрос на обновление, как с помощью команды адаптера данных, когда я работаю с набором данных, и определить для моего поля ModifiedDateTime значение GetDate (). Я создал хранимую функцию, чтобы вернуть мне значение метода GetDate (), но у меня проблема с импортом процедуры, которая возвращает значения в виде int, строки или вообще без значения, уже просто значения сущностей как Person, например, в моем случае. Это почему?
В любом случае, было бы очень полезно, если бы вы могли помочь мне получить текущий DateTime с сервера базы данных.
Есть ли причина, по которой вы просто не можете отправить ее в свою базу данных? Если вы включите DateTime.Now в запрос сущности, он отправит его в базу данных
Пример linq для сущностей
var dQuery = dbContext.CreateQuery<DateTime>("CurrentDateTime() ");
DateTime dbDate = dQuery.AsEnumerable().First();
SQL сгенерирован ..
SELECT GetDate() AS [C1] FROM ( SELECT cast(1 as bit) AS X ) AS [SingleRowTable1]
Может быть, лучший способ сделать это?
Это обновление ответа @Nix на EF4:
var dateQuery = dbContext.Database.SqlQuery<DateTime>("SELECT getdate()");
DateTime serverDate = dateQuery.AsEnumerable().First();