1- // -----------------------------------------------------------------------
1+ // -----------------------------------------------------------------------
22// <copyright file="DbContextBase.cs" company="OSharp开源团队">
33// Copyright (c) 2014-2019 OSharp. All rights reserved.
44// </copyright>
@@ -45,7 +45,7 @@ protected DbContextBase(DbContextOptions options, IServiceProvider serviceProvid
4545 _serviceProvider = serviceProvider ;
4646 _entityManager = serviceProvider . GetService < IEntityManager > ( ) ;
4747 _osharpDbOptions = serviceProvider ? . GetOSharpOptions ( ) ? . DbContexts ? . Values . FirstOrDefault ( m => m . DbContextType == GetType ( ) ) ;
48- Logger = serviceProvider ? . GetLogger ( this ) ;
48+ Logger = serviceProvider . GetLogger ( this ) ;
4949 }
5050
5151 /// <summary>
@@ -80,10 +80,10 @@ protected DbContextBase(DbContextOptions options, IServiceProvider serviceProvid
8080 public override int SaveChanges ( )
8181 {
8282 IList < AuditEntityEntry > auditEntities = new List < AuditEntityEntry > ( ) ;
83- if ( _osharpDbOptions ? . AuditEntityEnabled == true )
83+ if ( _osharpDbOptions . AuditEntityEnabled == true )
8484 {
8585 IAuditEntityProvider auditEntityProvider = _serviceProvider . GetService < IAuditEntityProvider > ( ) ;
86- auditEntities = auditEntityProvider ? . GetAuditEntities ( this ) ? . ToList ( ) ;
86+ auditEntities = auditEntityProvider ? . GetAuditEntities ( this ) . ToList ( ) ;
8787 }
8888
8989 //开启或使用现有事务
@@ -94,7 +94,7 @@ public override int SaveChanges()
9494 {
9595 AuditEntityEventData eventData = new AuditEntityEventData ( auditEntities ) ;
9696 IEventBus eventBus = _serviceProvider . GetService < IEventBus > ( ) ;
97- eventBus ? . Publish ( this , eventData ) ;
97+ eventBus . Publish ( this , eventData ) ;
9898 }
9999
100100 return count ;
@@ -128,10 +128,10 @@ public override int SaveChanges()
128128 public override async Task < int > SaveChangesAsync ( CancellationToken cancellationToken = new CancellationToken ( ) )
129129 {
130130 IList < AuditEntityEntry > auditEntities = new List < AuditEntityEntry > ( ) ;
131- if ( _osharpDbOptions ? . AuditEntityEnabled == true )
131+ if ( _osharpDbOptions . AuditEntityEnabled == true )
132132 {
133133 IAuditEntityProvider auditEntityProvider = _serviceProvider . GetService < IAuditEntityProvider > ( ) ;
134- auditEntities = auditEntityProvider ? . GetAuditEntities ( this ) ? . ToList ( ) ;
134+ auditEntities = auditEntityProvider ? . GetAuditEntities ( this ) . ToList ( ) ;
135135 }
136136
137137 //开启或使用现有事务
@@ -189,20 +189,26 @@ protected override void OnModelCreating(ModelBuilder modelBuilder)
189189 foreach ( IEntityRegister register in registers )
190190 {
191191 register . RegisterTo ( modelBuilder ) ;
192- Logger ? . LogDebug ( $ "将实体类 { register . EntityType } 注册到上下文 { contextType } 中") ;
192+ Logger . LogDebug ( $ "将实体类 { register . EntityType } 注册到上下文 { contextType } 中") ;
193193 }
194- Logger ? . LogInformation ( $ "上下文 { contextType } 注册了{ registers . Length } 个实体类") ;
194+ Logger . LogInformation ( $ "上下文 { contextType } 注册了{ registers . Length } 个实体类") ;
195195
196- //按预定前缀更改表名
197- var entityTypes = modelBuilder . Model . GetEntityTypes ( ) . ToList ( ) ;
196+ List < IMutableEntityType > entityTypes = modelBuilder . Model . GetEntityTypes ( ) . ToList ( ) ;
198197 foreach ( IMutableEntityType entityType in entityTypes )
199198 {
199+ //启用时间属性UTC格式
200+ if ( _osharpDbOptions . DateTimeUtcFormatEnabled )
201+ {
202+ IEntityDateTimeUtcConversion utcConversion = _serviceProvider . GetService < IEntityDateTimeUtcConversion > ( ) ;
203+ utcConversion . Convert ( entityType ) ;
204+ }
205+
206+ //按预定前缀更改表名
200207 string prefix = GetTableNamePrefix ( entityType . ClrType ) ;
201208 if ( prefix . IsNullOrEmpty ( ) )
202209 {
203210 continue ;
204211 }
205-
206212 modelBuilder . Entity ( entityType . ClrType ) . ToTable ( $ "{ prefix } _{ entityType . GetTableName ( ) } ") ;
207213 }
208214 }
0 commit comments