diff --git a/Src/Asp.Net/SqlServerTest/UnitTest/UCodeFirst.cs b/Src/Asp.Net/SqlServerTest/UnitTest/UCodeFirst.cs index 88e3d1eb9..faba79d13 100644 --- a/Src/Asp.Net/SqlServerTest/UnitTest/UCodeFirst.cs +++ b/Src/Asp.Net/SqlServerTest/UnitTest/UCodeFirst.cs @@ -52,6 +52,13 @@ namespace OrmTest catch { } + try + { + Db.Ado.ExecuteCommand(@" create schema [ddd]"); + } + catch + { + } db.CodeFirst.InitTables(); db.CodeFirst.InitTables(); db.Insertable(new UnitGe() { geometry1 = "POINT (20 180)" }).ExecuteCommand(); @@ -67,6 +74,7 @@ namespace OrmTest Db.CodeFirst.InitTables(); Db.CodeFirst.InitTables(); Db.CodeFirst.InitTables(); + db.CodeFirst.InitTables(); } public class UnitCodeFirst131 { @@ -104,7 +112,11 @@ namespace OrmTest { public string Id { get; set; } } - + [SugarTable("ddd.UnitTableName", "备注")] + public class UnitTablename + { + public string Id { get; set; } + } public class UnitDateOfTime2 { diff --git a/Src/Asp.Net/SqlSugar/Realization/SqlServer/DbMaintenance/SqlServerDbMaintenance.cs b/Src/Asp.Net/SqlSugar/Realization/SqlServer/DbMaintenance/SqlServerDbMaintenance.cs index d374af218..1284a2a13 100644 --- a/Src/Asp.Net/SqlSugar/Realization/SqlServer/DbMaintenance/SqlServerDbMaintenance.cs +++ b/Src/Asp.Net/SqlSugar/Realization/SqlServer/DbMaintenance/SqlServerDbMaintenance.cs @@ -313,6 +313,28 @@ namespace SqlSugar #endregion #region Methods + public override bool IsAnyTable(string tableName, bool isCache = true) + { + if (tableName.Contains(".")) + { + var schemas = GetSchemas(); + var first =this.SqlBuilder.GetNoTranslationColumnName(tableName.Split('.').First()); + var schemaInfo= schemas.FirstOrDefault(it=>it.EqualCase(first)); + if (schemaInfo == null) + { + return base.IsAnyTable(tableName, isCache); + } + else + { + var result= this.Context.Ado.GetInt($"select object_id('{tableName}')"); + return result > 0; + } + } + else + { + return base.IsAnyTable(tableName, isCache); + } + } public List GetSchemas() { return this.Context.Ado.SqlQuery("SELECT name FROM sys.schemas where name <> 'dbo'");