优化多字段分片下的默认检查属性导致的属性不存在问题

This commit is contained in:
xuejiaming 2024-08-29 13:32:41 +08:00
parent a2008bce88
commit 618f973e8f
2 changed files with 15 additions and 8 deletions

View File

@ -151,6 +151,7 @@ namespace Sample.MySql
builder
.UseMySql(connection, new MySqlServerVersion(new Version()))
.UseLoggerFactory(efLogger);
builder.AddInterceptors()
// .UseQueryTrackingBehavior(QueryTrackingBehavior.NoTracking)
// .UseLoggerFactory(loggerFactory1)
// .EnableSensitiveDataLogging();
@ -241,6 +242,7 @@ namespace Sample.MySql
app.ApplicationServices.UseAutoTryCompensateTable();
// var shardingRuntimeContext = app.ApplicationServices.GetRequiredService<IShardingRuntimeContext<DefaultShardingDbContext>>();
// var virtualDataSource = shardingRuntimeContext.GetVirtualDataSource();
// var connectionString = virtualDataSource.GetConnectionString("dataSourceName");

View File

@ -122,12 +122,14 @@ namespace ShardingCore.Core.EntityMetadatas
{
if (_shardingConfigOptions.CheckShardingKeyValueGenerated)
{
var propertiesMap = efEntityType.GetProperties().ToDictionary(o=>o.Name,o=>o);
if (metadata.IsMultiDataSourceMapping)
{
foreach (var metadataProperty in metadata.ShardingDataSourceProperties)
{
var propertyName = metadataProperty.Key;
var property = efEntityType.GetProperty(propertyName);
if (propertiesMap.TryGetValue(propertyName, out var property))
{
if (property.ValueGenerated != ValueGenerated.Never)
{
throw new ShardingCoreConfigException(
@ -135,13 +137,15 @@ namespace ShardingCore.Core.EntityMetadatas
}
}
}
}
if (metadata.IsMultiTableMapping)
{
foreach (var metadataProperty in metadata.ShardingTableProperties)
{
var propertyName = metadataProperty.Key;
var property = efEntityType.GetProperty(propertyName);
if (propertiesMap.TryGetValue(propertyName, out var property))
{
if (property.ValueGenerated != ValueGenerated.Never)
{
throw new ShardingCoreConfigException(
@ -150,6 +154,7 @@ namespace ShardingCore.Core.EntityMetadatas
}
}
}
}
metadata.SetEntityModel(efEntityType);