2011-09-09 1 views

Répondre

0

Il existe un paramètre dans le fournisseur useUTC = "true" Mais il y a si longtemps que je ne me souviens pas si cela fonctionne.

<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> 

Pour moi, si un champ est toujours temps UTC je l'appelle toujours xxxUTC juste parce que je me terriblement confus avec quoi que ce soit à voir avec les fuseaux horaires, donc j'ai modifié le modèle de contrôleur méthode Save comme ci-dessous. Fondamentalement, il suffit de vérifier la colonne et le définir comme requis ...

  <%=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 
      { 
+0

Merci, je vais essayer et vous faire savoir – Garvin

Questions connexes