NHibernate. Текущее время сервера () - PullRequest
0 голосов
/ 16 июня 2010

В моих доменах для целей аудита у меня есть свойство updatedOn. Теперь я установил его на клиенте перед обновлением до DateTime.Now. Но многие пользователи имеют неправильные datetime на своих компьютерах, поэтому мне нужно использовать сервер datetime (getdate (), now () ...) Как я могу реализовать эту стратегию?

Ответы [ 3 ]

1 голос
/ 16 июня 2010

Вы можете сделать это свойство доступным только для чтения / только для запроса и, таким образом, полностью игнорировать код приложения.Просто установите значение по умолчанию при вставке строки

CREATE TABLE [dbo].[FooTable](
.
.
.
[UpdatedOn] [datetime] NOT NULL CONSTRAINT [DF_FooTable_UpdatedOn] DEFAULT (Getdate()),
.
.

. Это обеспечит , если значение не передано , тогда столбец примет значение Getdate ()

1 голос
/ 16 июня 2010

В нашем проекте мы настроили наш MsSql2005Dialect.

    public class MsSql2005Dialect : NHibernate.Dialect.MsSql2005Dialect
{
    public MsSql2005Dialect()
    {
        RegisterFunction("getDate",
            new NoArgSQLFunction("convert(datetime, floor(convert(float, getdate())))", NHibernateUtil.DateTime, false));
        RegisterFunction("getDateTime",
            new NoArgSQLFunction("getdate", NHibernateUtil.DateTime, true));
    }
}

и зарегистрировали этот пользовательский диалект в nhibernatehelper: Dialect dialect = Dialect.GetDialect (configuration.Properties);

зарегистрироваться вhibernate.cfg.xml: SAGP.DataAccess.Dialects.MsSql2005Dialect, SAGP.DataAccess, Version = 1.0.0.0, Culture = нейтральный, PublicKeyToken = null

и используйте его в hql как: "select getDateTime ()from RandomTableFromYourSystem ";

0 голосов
/ 16 июня 2010

Я собираюсь предложить вам это http://mastercsharp.com/article.aspx?ArticleID=66&TopicID=7, поскольку это может быть тем, что вы ищете.Или вы можете просто создать веб-сервис для возврата времени сервера ...

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