Как попросить у сервера базы данных текущей даты и времени с помощью платформы объекта?

У меня есть объект со свойством ModifiedDateTime, которое я хочу быть обновленным с текущей датой и временем от базы данных вместо сервера "приложения", выполняющего приложение.

Каждый раз, когда я хочу обновить или добавить человека к моей базе данных на SQL Server 2008, я хочу заполнить зарегистрированный ModifiedDateTime. Это не похоже, я могу изменить запрос на обновление как с командой адаптера данных, когда я работаю с набором данных и определить для моего ModifiedDateTime, зарегистрированного, чтобы быть GetDate (). Я создал сохраненную функцию для возврата меня значение GetDate () метод, но у меня есть проблема для импорта процедуры, которая возвращает значения как интервал, строка или никакое значение вообще, уже просто значения объекта как Человек, например, в моем случае. Почему это?

Так или иначе это очень помогло бы, если можно помочь мне получить текущий DateTime от сервера базы данных.

10
задан user823959 21 February 2019 в 10:58
поделиться

2 ответа

Есть ли причина, по которой вы просто не можете передать это в базу данных? Если вы включите DateTime.Now в запрос к сущности, это приведет к тому, что она будет передана (getdate) в базу данных.

Пример linq к сущностям

 var dQuery = dbContext.CreateQuery<DateTime>("CurrentDateTime() ");
 DateTime dbDate = dQuery.AsEnumerable().First();

SQL Generated ...

SELECT GetDate() AS [C1] FROM  ( SELECT cast(1 as bit) AS X ) AS [SingleRowTable1]

Может быть есть лучший способ сделать это?

13
ответ дан 3 December 2019 в 17:19
поделиться

В VS 2008, если вы добавляете шаблон функции для возврата скаляра, он не добавляет код для упрощения использования. Вам необходимо получить доступ к шаблону функции напрямую - я использую частичный класс для создания необходимых методов для простоты использования. Они исправили это в VS2010.

    public DateTime GetDateTime()
    {
        var returnValue = new DateTime();
        using (var connection = new EntityConnection(Connection.ConnectionString))
        {
            connection.Open();
            using (var command = connection.CreateCommand())
            {
                command.CommandText = "myStoredProc";
                command.CommandType = CommandType.StoredProcedure;
                try
                {
                    returnValue = Convert.ToDateTime(command.ExecuteScalar());
                }
                finally
                {
                    connection.Close();
                }
            }
        }
        return returnValue;
    }

Дополнительная информация: Импорт функций в модели сущностей с типом возврата, отличным от сущности

0
ответ дан 3 December 2019 в 17:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: