В провайдере есть настройка 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
{