@@ -91,11 +91,11 @@ internal static TableInfo GetTableByEntity(Type entity, CommonUtils common) {
91
91
if ( string . IsNullOrEmpty ( colattr . Name ) ) colattr . Name = p . Name ;
92
92
if ( common . CodeFirst . IsSyncStructureToLower ) {
93
93
colattr . Name = colattr . Name . ToLower ( ) ;
94
- if ( ! string . IsNullOrEmpty ( colattr . Unique ) ) colattr . Unique = colattr . Unique . ToLower ( ) ;
94
+ colattr . Unique = colattr . Unique ? . ToLower ( ) ;
95
95
}
96
96
if ( common . CodeFirst . IsSyncStructureToUpper ) {
97
97
colattr . Name = colattr . Name . ToUpper ( ) ;
98
- if ( ! string . IsNullOrEmpty ( colattr . Unique ) ) colattr . Unique = colattr . Unique . ToUpper ( ) ;
98
+ colattr . Unique = colattr . Unique ? . ToUpper ( ) ;
99
99
}
100
100
101
101
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) {
179
179
foreach ( var dbcol in dbuk . Value ) {
180
180
if ( trytb . Columns . TryGetValue ( dbcol . Name , out var trycol ) && trycol . Attribute . MapType == dbcol . CsType ||
181
181
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 ;
183
184
}
184
185
}
185
186
}
@@ -188,8 +189,8 @@ internal static TableInfo GetTableByEntity(Type entity, CommonUtils common) {
188
189
} catch { }
189
190
trytb . Primarys = trytb . Columns . Values . Where ( a => a . Attribute . IsPrimary == true ) . ToArray ( ) ;
190
191
}
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 ( ) ) ;
193
194
tbc . AddOrUpdate ( entity , trytb , ( oldkey , oldval ) => trytb ) ;
194
195
195
196
#region 查找导航属性的关系、virtual 属性延时加载,动态产生新的重写类
0 commit comments