Selaa lähdekoodia

Data.DataProvider

Lith 7 kuukautta sitten
vanhempi
commit
0ca53be242

+ 5 - 4
src/Vitorm.Data/Data.DataProviderCache.cs

@@ -18,7 +18,8 @@ namespace Vitorm
             /// separate by comma, for example: "Vitorm.Model.MySql,Vitorm.Model.SqlServer"
             /// </summary>
             public readonly string @namespace;
-            private readonly List<string> classFullNamePrefixList;
+            private readonly List<string> namespaceList;
+            private readonly List<string> namespacePrefixList;
             public readonly Dictionary<string, object> dataSourceConfig;
 
             public DataProviderCache(IDataProvider dataProvider, Dictionary<string, object> dataSourceConfig)
@@ -35,12 +36,12 @@ namespace Vitorm
                 {
                     name = strName;
                 }
-
-                classFullNamePrefixList = @namespace?.Split(',').Select(ns => ns + ".").ToList();
+                namespaceList = @namespace?.Split(',').ToList();
+                namespacePrefixList = namespaceList.Select(ns => ns + ".").ToList();
             }
             internal bool Match(string classFullName)
             {
-                return classFullNamePrefixList?.Any(classFullNamePrefix => classFullName.StartsWith(classFullNamePrefix)) == true;
+                return namespaceList.Contains(classFullName) || namespacePrefixList?.Any(classFullNamePrefix => classFullName.StartsWith(classFullNamePrefix)) == true;
             }
         }
 

+ 1 - 1
src/Vitorm.Data/Data.DataSource.cs

@@ -155,7 +155,7 @@ namespace Vitorm
             /// <returns></returns>
             public virtual IDataProvider DataProvider(string nameOrNamespace)
             {
-                return providerList.FirstOrDefault(cache => cache.name == nameOrNamespace || cache.Match(nameOrNamespace))?.dataProvider;
+                return providerList.FirstOrDefault(cache => cache.name == nameOrNamespace || cache.@namespace == nameOrNamespace || cache.Match(nameOrNamespace))?.dataProvider;
             }
 
             #endregion

+ 3 - 3
test/IssuesTest/Vitorm.MsTest.Issue000_099/Issues/Issue_004_Test.cs

@@ -18,7 +18,7 @@ namespace Vitorm.MsTest.Issue000_099.Issues
             var name = Guid.NewGuid().ToString();
 
             // #1 Init
-            using var dbContext = Data.DataProvider("SqlServer").CreateSqlDbContext();
+            using var dbContext = Data.DataProvider("Vitorm.MsTest.SqlServer").CreateSqlDbContext();
             using var tran = dbContext.BeginTransaction();
             var dbSet = dbContext.DbSet<MyUser>();
             dbContext.Execute(@"create schema issue004_schema;");
@@ -42,7 +42,7 @@ insert into issue004_schema.Issue004_MyUser(id,name) values(1,@name);
             var name = Guid.NewGuid().ToString();
 
             // #1 Init
-            using var dbContext = Data.DataProvider("MySql").CreateSqlDbContext();
+            using var dbContext = Data.DataProvider("Vitorm.MsTest.MySql").CreateSqlDbContext();
             using var tran = dbContext.BeginTransaction();
             var dbSet = dbContext.DbSet<MyUser>();
             dbContext.Execute(@"
@@ -67,7 +67,7 @@ insert into `issue004_schema`.`Issue004_MyUser`(`id`,name) values(1,@name);
             var name = Guid.NewGuid().ToString();
 
             // #1 Init
-            using var dbContext = Data.DataProvider("Sqlite").CreateSqlDbContext();
+            using var dbContext = Data.DataProvider("Vitorm.MsTest.Sqlite").CreateSqlDbContext();
             using var tran = dbContext.BeginTransaction();
             var dbSet = dbContext.DbSet<MyUser>();
             dbSet.TryDropTable();