- ABP Framework version: v6.0.0
- UI Type: Angular
- Database System: EF Core (SQL Server)
- Auth Server Separated (for Angular): yes/no
- Exception message and full stack trace:
- Steps to reproduce the issue:
Hello Support team , We upgraded from v6 to v 7.3.2 using abp update command , I have now error when I tried to login on Auth server using this command :
var result = await SignInManager.PasswordSignInAsync(
LoginInput.UserNameOrEmailAddress,
LoginInput.Password,
LoginInput.RememberMe,
true
);
I got this error on attached image , you can also find below the stack trace for the System.ArgumentNullException:
System.ArgumentNullException
HResult=0x80004003
Message=Value cannot be null. Arg_ParamName_Name
Source=System.Linq
StackTrace:
at System.Linq.ThrowHelper.ThrowArgumentNullException(ExceptionArgument argument) in System.Linq\ThrowHelper.cs:line 10
at System.Linq.Enumerable.SequenceEqual[TSource](IEnumerable`1 first, IEnumerable`1 second, IEqualityComparer`1 comparer) in System.Linq\Enumerable.cs:line 6938
at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.InternalEntityEntry.GetCurrentValue[TProperty](IPropertyBase propertyBase) in /_/src/EFCore/ChangeTracking/Internal/InternalEntityEntry.cs:line 910
at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.InternalEntityEntry.EnsureOriginalValues() in /_/src/EFCore/ChangeTracking/Internal/InternalEntityEntry.cs:line 1142
at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.InternalEntityEntrySubscriber.SnapshotAndSubscribe(InternalEntityEntry entry) in /_/src/EFCore/ChangeTracking/Internal/InternalEntityEntrySubscriber.cs:line 32
at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.StartTrackingFromQuery(IEntityType baseEntityType, Object entity, ValueBuffer& valueBuffer) in /_/src/EFCore/ChangeTracking/Internal/StateManager.cs:line 359
at Microsoft.EntityFrameworkCore.Query.QueryContext.StartTracking(IEntityType entityType, Object entity, ValueBuffer valueBuffer) in /_/src/EFCore/Query/QueryContext.cs:line 147
at Microsoft.EntityFrameworkCore.Query.Internal.SplitQueryingEnumerable`1.AsyncEnumerator.<MoveNextAsync>d__21.MoveNext() in Microsoft.EntityFrameworkCore.Query.Internal\SplitQueryingEnumerable.cs:line 219
at System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1.ConfiguredValueTaskAwaiter.GetResult() in /_/src/libraries/System.Private.CoreLib/src/System/Runtime/CompilerServices/ConfiguredValueTaskAwaitable.cs:line 154
at Microsoft.EntityFrameworkCore.Query.ShapedQueryCompilingExpressionVisitor.<SingleOrDefaultAsync>d__15`1.MoveNext() in /_/src/EFCore/Query/ShapedQueryCompilingExpressionVisitor.cs:line 159
at Microsoft.EntityFrameworkCore.Query.ShapedQueryCompilingExpressionVisitor.<SingleOrDefaultAsync>d__15`1.MoveNext() in /_/src/EFCore/Query/ShapedQueryCompilingExpressionVisitor.cs:line 171
at SanadCash.Expense.Users.ExtendedEfCoreIdentityUserRepository.<FindByNormalizedUserNameAsync>d__6.MoveNext() in D:\Projects\SanadCash.Expense\aspnet-core\src\SanadCash.Expense.EntityFrameworkCore\Users\ExtendedEfCoreIdentityUserRepository.cs:line 103
This exception was originally thrown at this call stack:
System.Linq.ThrowHelper.ThrowArgumentNullException(System.Linq.ExceptionArgument) in ThrowHelper.cs
System.Linq.Enumerable.SequenceEqual<TSource>(System.Collections.Generic.IEnumerable<TSource>, System.Collections.Generic.IEnumerable<TSource>, System.Collections.Generic.IEqualityComparer<TSource>) in Enumerable.cs
Microsoft.EntityFrameworkCore.ChangeTracking.Internal.InternalEntityEntry.GetCurrentValue<TProperty>(Microsoft.EntityFrameworkCore.Metadata.IPropertyBase) in InternalEntityEntry.cs
Microsoft.EntityFrameworkCore.ChangeTracking.Internal.InternalEntityEntry.EnsureOriginalValues() in InternalEntityEntry.cs
Microsoft.EntityFrameworkCore.ChangeTracking.Internal.InternalEntityEntrySubscriber.SnapshotAndSubscribe(Microsoft.EntityFrameworkCore.ChangeTracking.Internal.InternalEntityEntry) in InternalEntityEntrySubscriber.cs
Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.StartTrackingFromQuery(Microsoft.EntityFrameworkCore.Metadata.IEntityType, object, Microsoft.EntityFrameworkCore.Storage.ValueBuffer) in StateManager.cs
Microsoft.EntityFrameworkCore.Query.QueryContext.StartTracking(Microsoft.EntityFrameworkCore.Metadata.IEntityType, object, Microsoft.EntityFrameworkCore.Storage.ValueBuffer) in QueryContext.cs
Microsoft.EntityFrameworkCore.Query.Internal.SplitQueryingEnumerable<T>.AsyncEnumerator.MoveNextAsync() in SplitQueryingEnumerable.cs
System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable<TResult>.ConfiguredValueTaskAwaiter.GetResult() in ConfiguredValueTaskAwaitable.cs
Microsoft.EntityFrameworkCore.Query.ShapedQueryCompilingExpressionVisitor.SingleOrDefaultAsync<TSource>(System.Collections.Generic.IAsyncEnumerable<TSource>, System.Threading.CancellationToken) in ShapedQueryCompilingExpressionVisitor.cs
...
[Call Stack Truncated]
17 Answer(s)
-
0
hi
There are too many changes between 6.0 and 7.3.
How can I reproduce this?
-
0
Hi , Sure thing , you can find below steps to reproduce this issue :
1- Go to the root of two projects and run run: abp update
2- change <TargetFramework>net6.0</TargetFramework> --> <TargetFramework>net7.0</TargetFramework>
3- Update many Microsoft DLL's to 7.0.0 like : Microsoft.Extensions.FileProviders.Embedded Microsoft.Extensions.Logging.Abstractions Microsoft.Extensions.Http Microsoft.Extensions.Options Microsoft.Extensions.Hosting
6- Change standard project from <TargetFramework>netstandard2.0</TargetFramework> To <TargetFrameworks>netstandard2.0;netstandard2.1;net7.0</TargetFrameworks>
7- Renamed OnRegistered Method
8 - Removed MultiTenancySides from permission groups #13755 //https://github.com/abpframework/abp/issues/13755
9- Upgrade Volo.Abp.Autofac , Volo.Saas.Host.Application.Contracts and any missing Volo references to 7.3.3
10 - Update below packages to 7.0.0 <PackageReference Include="Microsoft.AspNetCore.DataProtection.StackExchangeRedis" Version="7.0.0" /> <PackageReference Include="Microsoft.AspNetCore.Authentication.Google" Version="7.0.0" /> <PackageReference Include="Microsoft.AspNetCore.Authentication.MicrosoftAccount" Version="7.0.0" /> <PackageReference Include="Microsoft.AspNetCore.Authentication.Twitter" Version="7.0.0" /> <PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="7.0.0" /> <PackageReference Include="Microsoft.AspNetCore.DataProtection.StackExchangeRedis" Version="7.0.0" />
10 - Add public DbSet<IdentityUserDelegation> UserDelegations { get; }
11- Add migration and run the migration.
12 - <PackageReference Include="Volo.Abp.AspNetCore.Serilog" Version="7.3.3" /> <PackageReference Include="Volo.Abp.Caching.StackExchangeRedis" Version="7.3.3" /> <PackageReference Include="Volo.Abp.Account.Pro.Public.Application" Version="7.3.3" /> <PackageReference Include="Volo.Abp.Account.Pro.Public.HttpApi" Version="7.3.3" /> <PackageReference Include="Volo.Abp.Account.Pro.Public.Web.IdentityServer" Version="7.3.3" /> <PackageReference Include="Volo.Abp.Account.Pro.Public.Web.Impersonation" Version="7.3.3" /> <PackageReference Include="Volo.Abp.EventBus.Azure" Version="7.3.3" /> <PackageReference Include="Volo.Saas.Host.Application.Contracts" Version="7.3.3" />
13- Upgrade EasyAbp.NotificationService.Provider.Mailing package to 2.3.0
14 - update Volo.Abp.Account.Pro.Public.Web.IdentityServer to 7.3.2
15- update microsoft.entityframeworkcore.tools to 7.0.1
16 - upgrade Elsa , Elsa.Activities.UserTask and Elsa.Persistence.EntityFramework to 2.12.0
17 - In IdentityServer project upgrade Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonX To 2.3.3
18 - Run the application and try to login from Auth server link , you will got this error : Thanks ******************************************************************************************************
An unhandled exception occurred while processing the request. ArgumentNullException: Value cannot be null. (Parameter 'second') System.Linq.ThrowHelper.ThrowArgumentNullException(ExceptionArgument argument)
Stack Query Cookies Headers Routing ArgumentNullException: Value cannot be null. (Parameter 'second') System.Linq.ThrowHelper.ThrowArgumentNullException(ExceptionArgument argument) System.Linq.Enumerable.SequenceEqual<TSource>(IEnumerable<TSource> first, IEnumerable<TSource> second, IEqualityComparer<TSource> comparer) lambda_method2642(Closure , IUpdateEntry ) Microsoft.EntityFrameworkCore.ChangeTracking.Internal.InternalEntityEntry.GetCurrentValue<TProperty>(IPropertyBase propertyBase) lambda_method2584(Closure , InternalEntityEntry ) Microsoft.EntityFrameworkCore.ChangeTracking.Internal.InternalEntityEntry+OriginalValues..ctor(InternalEntityEntry entry) Microsoft.EntityFrameworkCore.ChangeTracking.Internal.InternalEntityEntry.EnsureOriginalValues() Microsoft.EntityFrameworkCore.ChangeTracking.Internal.InternalEntityEntrySubscriber.SnapshotAndSubscribe(InternalEntityEntry entry) Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.StartTrackingFromQuery(IEntityType baseEntityType, object entity, ref ValueBuffer valueBuffer) Microsoft.EntityFrameworkCore.Query.QueryContext.StartTracking(IEntityType entityType, object entity, ValueBuffer valueBuffer) lambda_method2526(Closure , QueryContext , DbDataReader , ResultContext , SplitQueryResultCoordinator ) Microsoft.EntityFrameworkCore.Query.Internal.SplitQueryingEnumerable<T>+AsyncEnumerator.MoveNextAsync() System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable<TResult>+ConfiguredValueTaskAwaiter.GetResult() Microsoft.EntityFrameworkCore.Query.ShapedQueryCompilingExpressionVisitor.SingleOrDefaultAsync<TSource>(IAsyncEnumerable<TSource> asyncEnumerable, CancellationToken cancellationToken) Microsoft.EntityFrameworkCore.Query.ShapedQueryCompilingExpressionVisitor.SingleOrDefaultAsync<TSource>(IAsyncEnumerable<TSource> asyncEnumerable, CancellationToken cancellationToken) Volo.Abp.Identity.EntityFrameworkCore.EfCoreIdentityUserRepository.FindByNormalizedUserNameAsync(string normalizedUserName, bool includeDetails, CancellationToken cancellationToken) Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous<TResult>(IInvocation invocation, IInvocationProceedInfo proceedInfo) Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapterWithReturnValue<TResult>.ProceedAsync() Volo.Abp.Uow.UnitOfWorkInterceptor.InterceptAsync(IAbpMethodInvocation invocation) Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter<TInterceptor>.InterceptAsync<TResult>(IInvocation invocation, IInvocationProceedInfo proceedInfo, Func<IInvocation, IInvocationProceedInfo, Task<TResult>> proceed) Microsoft.AspNetCore.Identity.UserManager<TUser>.FindByNameAsync(string userName) Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous<TResult>(IInvocation invocation, IInvocationProceedInfo proceedInfo) Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapterWithReturnValue<TResult>.ProceedAsync() Volo.Abp.Uow.UnitOfWorkInterceptor.InterceptAsync(IAbpMethodInvocation invocation) Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter<TInterceptor>.InterceptAsync<TResult>(IInvocation invocation, IInvocationProceedInfo proceedInfo, Func<IInvocation, IInvocationProceedInfo, Task<TResult>> proceed) Microsoft.AspNetCore.Identity.SignInManager<TUser>.PasswordSignInAsync(string userName, string password, bool isPersistent, bool lockoutOnFailure) Volo.Abp.Identity.AspNetCore.AbpSignInManager.PasswordSignInAsync(string userName, string password, bool isPersistent, bool lockoutOnFailure) SanadCash.Expense.Pages.Account.LoginModel.OnPostAsync(string action) in Login.cshtml.cs + var result = await SignInManager.PasswordSignInAsync( Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.ExecutorFactory+GenericTaskHandlerMethod.Convert<T>(object taskAsObject) Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.ExecutorFactory+GenericTaskHandlerMethod.Execute(object receiver, object[] arguments) Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker.InvokeHandlerMethodAsync() Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker.InvokeNextPageFilterAsync() Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker.Rethrow(PageHandlerExecutedContext context) Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker.Next(ref State next, ref Scope scope, ref object state, ref bool isCompleted) Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker.InvokeInnerFilterAsync() Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextExceptionFilterAsync>g__Awaited|26_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, object state, bool isCompleted) Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ExceptionContextSealed context) Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(ref State next, ref Scope scope, ref object state, ref bool isCompleted) Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResourceFilter>g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, object state, bool isCompleted) Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context) Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(ref State next, ref Scope scope, ref object state, ref bool isCompleted) Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeFilterPipelineAsync>g__Awaited|20_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, object state, bool isCompleted) Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(ResourceInvoker invoker) Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(ResourceInvoker invoker) Microsoft.AspNetCore.Routing.EndpointMiddleware.<Invoke>g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger) Volo.Abp.AspNetCore.Serilog.AbpSerilogMiddleware.InvokeAsync(HttpContext context, RequestDelegate next) Microsoft.AspNetCore.Builder.UseMiddlewareExtensions+<>c__DisplayClass6_1+<<UseMiddlewareInterface>b__1>d.MoveNext() Volo.Abp.AspNetCore.Auditing.AbpAuditingMiddleware.InvokeAsync(HttpContext context, RequestDelegate next) Volo.Abp.AspNetCore.Auditing.AbpAuditingMiddleware.InvokeAsync(HttpContext context, RequestDelegate next) Microsoft.AspNetCore.Builder.UseMiddlewareExtensions+<>c__DisplayClass6_1+<<UseMiddlewareInterface>b__1>d.MoveNext() Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context) IdentityServer4.Hosting.IdentityServerMiddleware.Invoke(HttpContext context, IEndpointRouter router, IUserSession session, IEventService events, IBackChannelLogoutService backChannelLogoutService) IdentityServer4.Hosting.MutualTlsEndpointMiddleware.Invoke(HttpContext context, IAuthenticationSchemeProvider schemes) Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context) IdentityServer4.Hosting.BaseUrlMiddleware.Invoke(HttpContext context) Volo.Abp.AspNetCore.Uow.AbpUnitOfWorkMiddleware.InvokeAsync(HttpContext context, RequestDelegate next) Microsoft.AspNetCore.Builder.UseMiddlewareExtensions+<>c__DisplayClass6_1+<<UseMiddlewareInterface>b__1>d.MoveNext() Volo.Abp.AspNetCore.ExceptionHandling.AbpExceptionHandlingMiddleware.InvokeAsync(HttpContext context, RequestDelegate next) Volo.Abp.AspNetCore.ExceptionHandling.AbpExceptionHandlingMiddleware.InvokeAsync(HttpContext context, RequestDelegate next) Microsoft.AspNetCore.Builder.UseMiddlewareExtensions+<>c__DisplayClass6_1+<<UseMiddlewareInterface>b__1>d.MoveNext() Volo.Abp.AspNetCore.MultiTenancy.MultiTenancyMiddleware.InvokeAsync(HttpContext context, RequestDelegate next) Microsoft.AspNetCore.Builder.UseMiddlewareExtensions+<>c__DisplayClass6_1+<<UseMiddlewareInterface>b__1>d.MoveNext() Microsoft.AspNetCore.Builder.ApplicationBuilderAbpJwtTokenMiddlewareExtension+<>c__DisplayClass0_0+<<UseJwtTokenMiddleware>b__0>d.MoveNext() Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context) Volo.Abp.AspNetCore.Tracing.AbpCorrelationIdMiddleware.InvokeAsync(HttpContext context, RequestDelegate next) Microsoft.AspNetCore.Builder.UseMiddlewareExtensions+<>c__DisplayClass6_1+<<UseMiddlewareInterface>b__1>d.MoveNext() Microsoft.AspNetCore.Localization.RequestLocalizationMiddleware.Invoke(HttpContext context) Microsoft.AspNetCore.RequestLocalization.AbpRequestLocalizationMiddleware.InvokeAsync(HttpContext context, RequestDelegate next) Microsoft.AspNetCore.Builder.UseMiddlewareExtensions+<>c__DisplayClass6_1+<<UseMiddlewareInterface>b__1>d.MoveNext() Volo.Abp.AspNetCore.Security.AbpSecurityHeadersMiddleware.InvokeAsync(HttpContext context, RequestDelegate next) Microsoft.AspNetCore.Builder.UseMiddlewareExtensions+<>c__DisplayClass6_1+<<UseMiddlewareInterface>b__1>d.MoveNext() Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddlewareImpl.Invoke(HttpContext context)
-
0
hi
Please share your project, and I will run it on my locally.
Thanks
liming.ma@volosoft.com
-
0
Hi ,
I tried to prepare a project for Auth server that have this issue after remove our source code but the issue not appear . As you know I can't share our Company source code .
So can make a remote session with you to investigate on issue on real sample with easy steps . We can make this session any time if you can and I hope it will take a small time.
This is mt email : anasaq@sanadcash.com
Thanks
-
0
hi
I think it can definitely reproduce the problem on your computer, But it is difficult to debug applications remotely. Can you first compare the code of the new and old projects?
-
0
Hi , I can now reproduce the issue in clean instance for version 7.3.3 . The issue on AbpTestUpgrade733NewDbContext.cs in line 95 : b.ToTable(AbpAuditLoggingDbProperties.DbTablePrefix + "Users", AbpAuditLoggingDbProperties.DbSchema); If we comment this line the error will gone but we can't access IdentityUserView .
I will attach two files . The first one aspnet-core-V6-AbpV-6.0.0 will have the working sample from our code using abp version 6.
The second one aspnet-core-V7-AbpV-7.3.3 will have the working sample from our code using abp version 7.3.3. You can see the error on version 7.3.3 , also on file Index.cshtml.cs you will find a code to get data from **IdentityUser **entity and IdentityUserView
Note: in **IdentityUser **entity and IdentityUserView we want to map these two entities to the same table Users , it's work fine in abp V6 , but we got an error on abp V 7.3.3
Best regards
-
0
Hi,
It looks like a problem with EF Core, not ABP.
Will it work if you use a net core application without ABP?
-
0
Hi liangshiwei , The sample work fine int .Net 7 with EF7 , please find this console application .
Best regards
-
0
Hi,
I will check it
-
0
-
0
Hi , The relation is One-to-one with no navigations : protected override void OnModelCreating(ModelBuilder modelBuilder)
{ modelBuilder.Entity<Blog>() .HasOne<BlogHeader>() .WithOne() .HasForeignKey<BlogHeader>(e => e.BlogId) .IsRequired(); }
The two entities mapped to the same table. Also if we change it like this we still have the same error :
b.HasOne<IdentityUser>().WithOne().HasForeignKey<IdentityUserView>(e => e.Id);
Please can you check this project after add new Entities Country and CountryView which also mapped to one Table "AppCountries" , you will see that the project work fine (after comment the ModelBuilder configuration for users).
Another important things the "DbMigrator" project also throw the same error when we run it (after uncomment the ModelBuilder configuration for users).
It's seems the issue is with **IdentityUser **class .
Thanks
-
0
hi
I will check
Country and CountryView
. -
0
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); });
-
0
-
0
hi aqudah81
Can you share the project again? Thanks
liming.ma@volosoft.com
-
0
Hi maliming , Sure thing , Please find the link for the [Project ]
Thanks
-
0