fix: configure TenantInfo as owned entity and use AsNoTracking
- Add AsNoTracking to tenant query to avoid tracking conflicts - Configure TenantInfo as owned entity in ApplicationUser - Map TenantInfo properties to separate columns in AspNetUsers table
This commit is contained in:
parent
0472772d35
commit
b6c85b1c4b
@ -25,6 +25,14 @@ public class ApplicationDbContext : IdentityDbContext<ApplicationUser, Applicati
|
||||
entity.Property(e => e.RealName).HasMaxLength(100);
|
||||
entity.Property(e => e.Phone).HasMaxLength(20);
|
||||
entity.HasIndex(e => e.Phone).IsUnique();
|
||||
|
||||
entity.OwnsOne(e => e.TenantInfo, navigationBuilder =>
|
||||
{
|
||||
navigationBuilder.Property(e => e.Id).HasColumnName("TenantId");
|
||||
navigationBuilder.Property(e => e.TenantId).HasColumnName("TenantCode");
|
||||
navigationBuilder.Property(e => e.Name).HasColumnName("TenantName");
|
||||
navigationBuilder.WithOwner();
|
||||
});
|
||||
});
|
||||
|
||||
builder.Entity<ApplicationRole>(entity =>
|
||||
|
||||
@ -16,6 +16,7 @@ public static class SeedData
|
||||
context.Database.EnsureCreated();
|
||||
|
||||
var defaultTenant = await context.Tenants
|
||||
.AsNoTracking()
|
||||
.FirstOrDefaultAsync(t => t.TenantId == "default");
|
||||
if (defaultTenant == null)
|
||||
{
|
||||
|
||||
@ -6,25 +6,25 @@
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Swashbuckle.AspNetCore" Version="10.1.1" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="10.0.2">
|
||||
<PackageReference Include="Swashbuckle.AspNetCore" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Design">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
</PackageReference>
|
||||
<PackageReference Include="Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore" Version="10.0.2" />
|
||||
<PackageReference Include="AspNetCore.HealthChecks.Npgsql" Version="9.0.0" />
|
||||
<PackageReference Include="OpenIddict.AspNetCore" Version="7.2.0" />
|
||||
<PackageReference Include="OpenIddict.EntityFrameworkCore" Version="7.2.0" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="10.0.2" />
|
||||
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="10.0.0" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="10.0.2" />
|
||||
<PackageReference Include="Serilog.AspNetCore" Version="10.0.0" />
|
||||
<PackageReference Include="Serilog.Sinks.Console" Version="6.1.1" />
|
||||
<PackageReference Include="OpenTelemetry" Version="1.15.0" />
|
||||
<PackageReference Include="OpenTelemetry.Extensions.Hosting" Version="1.15.0" />
|
||||
<PackageReference Include="OpenTelemetry.Instrumentation.AspNetCore" Version="1.15.0" />
|
||||
<PackageReference Include="OpenTelemetry.Instrumentation.Http" Version="1.15.0" />
|
||||
<PackageReference Include="OpenTelemetry.Exporter.OpenTelemetryProtocol" Version="1.15.0" />
|
||||
<PackageReference Include="Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore" />
|
||||
<PackageReference Include="AspNetCore.HealthChecks.Npgsql" />
|
||||
<PackageReference Include="OpenIddict.AspNetCore" />
|
||||
<PackageReference Include="OpenIddict.EntityFrameworkCore" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" />
|
||||
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" />
|
||||
<PackageReference Include="Serilog.AspNetCore" />
|
||||
<PackageReference Include="Serilog.Sinks.Console" />
|
||||
<PackageReference Include="OpenTelemetry" />
|
||||
<PackageReference Include="OpenTelemetry.Extensions.Hosting" />
|
||||
<PackageReference Include="OpenTelemetry.Instrumentation.AspNetCore" />
|
||||
<PackageReference Include="OpenTelemetry.Instrumentation.Http" />
|
||||
<PackageReference Include="OpenTelemetry.Exporter.OpenTelemetryProtocol" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user