From d30f82a185aca3ba26b5950b34ef3914dc4b31a2 Mon Sep 17 00:00:00 2001 From: xuejiaming <326308290@qq.com> Date: Thu, 16 Mar 2023 18:33:20 +0800 Subject: [PATCH] [#231] fixed schema miss --- .../Core/EntityMetadatas/EntityMetadata.cs | 5 +++++ src/ShardingCore/EFCores/ShardingModelCustomizer.cs | 2 +- .../InternalExtensions/InternalIEntityTypeExtension.cs | 10 ++++++++++ 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/ShardingCore/Core/EntityMetadatas/EntityMetadata.cs b/src/ShardingCore/Core/EntityMetadatas/EntityMetadata.cs index 27f756f7..040589c9 100644 --- a/src/ShardingCore/Core/EntityMetadatas/EntityMetadata.cs +++ b/src/ShardingCore/Core/EntityMetadatas/EntityMetadata.cs @@ -81,6 +81,10 @@ namespace ShardingCore.Core.EntityMetadatas /// 逻辑表名 /// public string LogicTableName { get; private set; } + /** + * 对象表所属schema + */ + public string Schema { get; private set; } /// /// 主键 @@ -105,6 +109,7 @@ namespace ShardingCore.Core.EntityMetadatas PrimaryKeyProperties = dbEntityType.FindPrimaryKey()?.Properties?.Select(o => o.PropertyInfo)?.ToList() ?? new List(); IsSingleKey = PrimaryKeyProperties.Count == 1; + Schema = dbEntityType.GetEntityTypeSchema(); } diff --git a/src/ShardingCore/EFCores/ShardingModelCustomizer.cs b/src/ShardingCore/EFCores/ShardingModelCustomizer.cs index 080f66cd..2adf18a8 100644 --- a/src/ShardingCore/EFCores/ShardingModelCustomizer.cs +++ b/src/ShardingCore/EFCores/ShardingModelCustomizer.cs @@ -87,7 +87,7 @@ namespace ShardingCore.EFCores var tableName = entityMetadata.LogicTableName; if (string.IsNullOrWhiteSpace(tableName)) throw new ArgumentNullException($"{shardingEntity}: not found logic table name。"); - entity.ToTable($"{tableName}{tableSeparator}{tail}"); + entity.ToTable($"{tableName}{tableSeparator}{tail}",entityMetadata.Schema); } } } \ No newline at end of file diff --git a/src/ShardingCore/Extensions/InternalExtensions/InternalIEntityTypeExtension.cs b/src/ShardingCore/Extensions/InternalExtensions/InternalIEntityTypeExtension.cs index c34c6f9a..1e34224a 100644 --- a/src/ShardingCore/Extensions/InternalExtensions/InternalIEntityTypeExtension.cs +++ b/src/ShardingCore/Extensions/InternalExtensions/InternalIEntityTypeExtension.cs @@ -22,6 +22,16 @@ namespace ShardingCore.Extensions.InternalExtensions #endif #if EFCORE2 var tableName = entityType.Relational().TableName; +#endif + return tableName; + } + public static string GetEntityTypeSchema(this IEntityType entityType) + { +#if !EFCORE2 + var tableName = entityType.GetSchema(); +#endif +#if EFCORE2 + var tableName = entityType.Relational().Schema; #endif return tableName; }