@@ -264,23 +264,24 @@ static List<ZeroTableInfo> ValidateSchemaToInfoInternal(IFreeSql orm, IEnumerabl
264264 }
265265
266266 /// <summary>
267- /// 从数据库中加载 TableDescriptor 描述 <para></para>
267+ /// 从数据库中加载<para></para>
268268 /// - 不支持 Navigates<para></para>
269269 /// - 不支持 Indexes IndexMethod<para></para>
270270 /// - 暂支持 SqlServer/MySql decimal(10,2)(其他数据库需实现对应 IDbFirst)
271271 /// </summary>
272- static TableDescriptor LoadTableDescriptor ( IFreeSql orm , string tableName )
272+ public TableDescriptor LoadSchemaFromDatabase ( string tableName )
273273 {
274- var dbinfo = orm . DbFirst . GetTableByName ( tableName , true ) ;
274+ if ( _tables . Any ( a => string . Compare ( a . DbName , tableName , true ) == 0 ) ) return ;
275+ var dbinfo = _orm . DbFirst . GetTableByName ( tableName , true ) ;
275276 if ( dbinfo == null ) throw new Exception ( $ "表“{ tableName } ”不存在") ;
276- var tb = new TableDescriptor
277+ var schema = new TableDescriptor
277278 {
278279 Comment = dbinfo . Comment ,
279280 DbName = dbinfo . Name ,
280281 Name = dbinfo . Name ,
281282 DisableSyncStructure = false ,
282283 } ;
283- tb . Columns . AddRange ( dbinfo . Columns . Select ( a => new TableDescriptor . ColumnDescriptor
284+ schema . Columns . AddRange ( dbinfo . Columns . Select ( a => new TableDescriptor . ColumnDescriptor
284285 {
285286 Name = a . Name ,
286287 DbType = a . DbTypeText ,
@@ -296,13 +297,14 @@ static TableDescriptor LoadTableDescriptor(IFreeSql orm, string tableName)
296297 Scale = a . Scale ,
297298 Comment = a . Comment ,
298299 } ) ) ;
299- tb . Indexes . AddRange ( dbinfo . Indexes . Select ( a => new TableDescriptor . IndexDescriptor
300+ schema . Indexes . AddRange ( dbinfo . Indexes . Select ( a => new TableDescriptor . IndexDescriptor
300301 {
301302 Name = a . Name ,
302303 IsUnique = a . IsUnique ,
303304 Fields = string . Join ( "," , a . Columns . Select ( b => b . Column ) ) ,
304305 } ) ) ;
305- return tb ;
306+ _tables . AddRange ( ValidateSchemaToInfoInternal ( _orm , new [ ] { schema } ) ) ;
307+ return schema ;
306308 }
307309
308310 public ZeroDbContext WithTransaction ( DbTransaction value )
0 commit comments