hi
Check your logs.txt
There may be this line in your app. Please remove it.
#if DEBUG
context.Services.Replace(ServiceDescriptor.Singleton<IEmailSender, NullEmailSender>());
#endif
https://github.com/abpframework/abp-samples/tree/master/EmailSendDemo
Fixed, You can try again.
hi
I have no other idea.
hi
ObjectHelper.TrySetProperty(
multiTenantEntity,
x => x.TenantId,
() => your_tenantId
);
hi
You can try to add InvariantGlobalization
to DbMigrator
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<InvariantGlobalization>true</InvariantGlobalization>
</PropertyGroup>
</Project>
https://learn.microsoft.com/en-us/dotnet/core/runtime-config/globalization
ok, Please wait for the email reply. Thanks.
Hi,
You can send an email to license@abp.io. your ticket refunded.
hi
You can test this
public class MyExtraPropertyDictionaryValueComparer : ValueComparer<ExtraPropertyDictionary>
{
public MyExtraPropertyDictionaryValueComparer()
: base(
(a, b) => Compare(a, b),
d => d.Aggregate(0, (k, v) => HashCode.Combine(k, v.GetHashCode())),
d => new ExtraPropertyDictionary(d))
{
}
private static bool Compare(ExtraPropertyDictionary? a, ExtraPropertyDictionary? b)
{
if (a == null && b == null)
{
return true;
}
if (a == null && b != null || a != null && b == null)
{
return false;
}
return a!.SequenceEqual(b!);
}
}
builder.Entity<IdentityUser>(b =>
{
b.ToTable(AbpIdentityDbProperties.DbTablePrefix + "Users", AbpIdentityDbProperties.DbSchema);
b.ConfigureByConvention();
b.Property(x => x.LockoutEnd).HasColumnName(nameof(IdentityUser.LockoutEnd));
b.Property(x => x.Id).HasColumnName(nameof(IdentityUser.Id));
b.Property(x => x.ExtraProperties)
.HasColumnName(nameof(IHasExtraProperties.ExtraProperties))
.HasConversion(new ExtraPropertiesValueConverter(b.Metadata.ClrType))
.Metadata.SetValueComparer(new MyExtraPropertyDictionaryValueComparer());
});
builder.Entity<IdentityUserView>(b =>
{
b.ToTable(AbpAuditLoggingDbProperties.DbTablePrefix + "Users", AbpIdentityDbProperties.DbSchema);
b.ConfigureByConvention();
b.Property(x => x.ExtraProperties)
.HasColumnName(nameof(IHasExtraProperties.ExtraProperties))
.HasConversion(new ExtraPropertiesValueConverter(b.Metadata.ClrType))
.Metadata.SetValueComparer(new MyExtraPropertyDictionaryValueComparer());
b.Property(x => x.Id).HasColumnName(nameof(IdentityUser.Id));
b.Property(x => x.AccessFailedCount).HasColumnName(nameof(IdentityUser.AccessFailedCount));
b.Property(x => x.Email).HasColumnName(nameof(IdentityUser.Email)).HasMaxLength(256);
b.Property(x => x.EmailConfirmed).HasColumnName(nameof(IdentityUser.EmailConfirmed));
b.Property(x => x.IsActive).HasColumnName(nameof(IdentityUser.IsActive));
b.Property(x => x.IsExternal).HasColumnName(nameof(IdentityUser.IsExternal));
b.Property(x => x.LockoutEnabled).HasColumnName(nameof(IdentityUser.LockoutEnabled));
b.Property(x => x.LockoutEnd).HasColumnName(nameof(IdentityUser.LockoutEnd));
b.Property(x => x.Name).HasColumnName(nameof(IdentityUser.Name)).HasMaxLength(64);
b.Property(x => x.NormalizedEmail).HasColumnName(nameof(IdentityUser.NormalizedEmail)).HasMaxLength(256);
b.Property(x => x.NormalizedUserName).HasColumnName(nameof(IdentityUser.NormalizedUserName)).HasMaxLength(256);
b.Property(x => x.PasswordHash).HasColumnName(nameof(IdentityUser.PasswordHash)).HasMaxLength(256);
b.Property(x => x.PhoneNumber).HasColumnName(nameof(IdentityUser.PhoneNumber)).HasMaxLength(16);
b.Property(x => x.PhoneNumberConfirmed).HasColumnName(nameof(IdentityUser.PhoneNumberConfirmed));
b.Property(x => x.SecurityStamp).HasColumnName(nameof(IdentityUser.SecurityStamp)).HasMaxLength(256);
b.Property(x => x.Surname).HasColumnName(nameof(IdentityUser.Surname)).HasMaxLength(64);
b.Property(x => x.TwoFactorEnabled).HasColumnName(nameof(IdentityUser.TwoFactorEnabled));
b.Property(x => x.UserName).HasColumnName(nameof(IdentityUser.UserName)).HasMaxLength(256);
b.HasOne<IdentityUser>().WithOne().HasForeignKey<IdentityUserView>(e => e.Id);
});