@@ -91,11 +91,11 @@ internal static TableInfo GetTableByEntity(Type entity, CommonUtils common) {
9191 if ( string . IsNullOrEmpty ( colattr . Name ) ) colattr . Name = p . Name ;
9292 if ( common . CodeFirst . IsSyncStructureToLower ) {
9393 colattr . Name = colattr . Name . ToLower ( ) ;
94- if ( ! string . IsNullOrEmpty ( colattr . Unique ) ) colattr . Unique = colattr . Unique . ToLower ( ) ;
94+ colattr . Unique = colattr . Unique ? . ToLower ( ) ;
9595 }
9696 if ( common . CodeFirst . IsSyncStructureToUpper ) {
9797 colattr . Name = colattr . Name . ToUpper ( ) ;
98- if ( ! string . IsNullOrEmpty ( colattr . Unique ) ) colattr . Unique = colattr . Unique . ToUpper ( ) ;
98+ colattr . Unique = colattr . Unique ? . ToUpper ( ) ;
9999 }
100100
101101 if ( ( colattr . IsNullable != true || colattr . IsIdentity == true || colattr . IsPrimary == true ) && colattr . DbType . Contains ( "NOT NULL" ) == false ) {
@@ -179,7 +179,8 @@ internal static TableInfo GetTableByEntity(Type entity, CommonUtils common) {
179179 foreach ( var dbcol in dbuk . Value ) {
180180 if ( trytb . Columns . TryGetValue ( dbcol . Name , out var trycol ) && trycol . Attribute . MapType == dbcol . CsType ||
181181 trytb . ColumnsByCs . TryGetValue ( dbcol . Name , out trycol ) && trycol . Attribute . MapType == dbcol . CsType ) {
182- trycol . Attribute . Unique = dbuk . Key ;
182+ if ( trycol . Attribute . _Uniques ? . Contains ( dbuk . Key ) != true )
183+ trycol . Attribute . Unique += $ "," + dbuk . Key ;
183184 }
184185 }
185186 }
@@ -188,8 +189,8 @@ internal static TableInfo GetTableByEntity(Type entity, CommonUtils common) {
188189 } catch { }
189190 trytb . Primarys = trytb . Columns . Values . Where ( a => a . Attribute . IsPrimary == true ) . ToArray ( ) ;
190191 }
191- trytb . Uniques = trytb . Columns . Values . Where ( a => ! string . IsNullOrEmpty ( a . Attribute . Unique ) ) . Select ( a => a . Attribute . Unique ) . Distinct ( )
192- . ToDictionary ( a => a , a => trytb . Columns . Values . Where ( b => b . Attribute . Unique == a ) . ToList ( ) ) ;
192+ var allunique = trytb . Columns . Values . Where ( a => a . Attribute . _Uniques != null ) . SelectMany ( a => a . Attribute . _Uniques ) . Distinct ( ) ;
193+ trytb . Uniques = allunique . ToDictionary ( a => a , a => trytb . Columns . Values . Where ( b => b . Attribute . _Uniques != null && b . Attribute . _Uniques . Contains ( a ) ) . ToList ( ) ) ;
193194 tbc . AddOrUpdate ( entity , trytb , ( oldkey , oldval ) => trytb ) ;
194195
195196 #region 查找导航属性的关系、virtual 属性延时加载,动态产生新的重写类
0 commit comments