Как установить часовой пояс для полей дозвукового аудита? - PullRequest
0 голосов
/ 09 сентября 2011

Мне нравится тот факт, что Subsonic автоматически обновляет мое поле аудита "CreatedOn", но, похоже, делает это только во время сервера. Есть ли способ поручить Subsonic сохранить даты аудита вместо UTC?

1 Ответ

0 голосов
/ 19 сентября 2011

В провайдере есть настройка useUTC = "true" Но это так давно, я не могу вспомнить, работает ли это.

<SubSonicService defaultProvider="TAProvider" 
     templateDirectory="..\..\ExternalResources\SubSonicCustomTemplates">
  <providers>
    <clear/>
    <add name="TAProvider" type="SubSonic.SqlDataProvider, SubSonic" 
         connectionStringName="TA" generatedNamespace="TA.DAL" useUTC="true" 
         useSPs="false" generateLazyLoads="false"/>
  </providers>
</SubSonicService>

Для меня, если полеКогда время UTC, я всегда называю это xxxUTC, просто потому, что меня ужасно смущает что-либо, связанное с часовыми поясами, поэтому я изменил метод Save в шаблоне контроллера, как показано ниже.В основном просто проверьте столбец и установите его как требуется ...

            <%=tbl.ClassName %> oldItem = null;
            if (item.<%=tbl.PrimaryKey.PropertyName%> != <%=emptyVariableText%>)
                oldItem = new <%=tbl.ClassName %>(item.<%=tbl.PrimaryKey.PropertyName%>);

            if (item.<%=tbl.PrimaryKey.PropertyName%> == <%=emptyVariableText%>)
            {
                            item.IsNew = true;
<%  if (tbl.Columns.Contains("CreatedOnUTC"))
    { 
%>                    item.CreatedOnUTC = DateTime.UtcNow; 
<%  } 
    if (tbl.Columns.Contains("CreatedOn")) // just checking
    { 
%>                  error: createdon column. fix and rerun template 
<%  } 
    if (tbl.Columns.Contains("CreatedByID"))
    { 
%>                    item.CreatedByID = taUser.telUser.TelUserID; 
<%  } 
%>
            }
<%  if (tbl.Columns.Contains("ModifiedOnUTC"))  
    { 
%>                item.ModifiedOnUTC = DateTime.UtcNow; 
<%} 
    if (tbl.Columns.Contains("ModifiedByID"))
    {   
%>                item.ModifiedByID = taUser.telUser.TelUserID; 
<%  } 
%>            
            try
            {
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...