- .NET & EF Core 2.2
- Devart.Data.Oracle.EFCore: 9.6.675
Hi,
I'm using ASP.NET Core Identity with devart dotConnect for Oracle. I'm getting the Oracle exception "ORA-01036: illegal variable name/number" exception when I try to update a user with Core Identity UserManager and I'm not sure how to track down the problem.
I have a custom application user:
Code: Select all
public class ApplicationUser : IdentityUser<long>
{
[Column("NAME")]
[StringLength(50)]
public string FullName { get; set; }
}
Code: Select all
protected override void OnModelCreating(ModelBuilder builder)
{
base.OnModelCreating(builder);
[...]
builder.Entity<ApplicationUser>(userConfig =>
{
userConfig.ToTable("USERS");
userConfig.Ignore(u => u.LockoutEnabled);
userConfig.Ignore(u => u.PhoneNumber);
userConfig.Ignore(u => u.PhoneNumberConfirmed);
userConfig.Ignore(u => u.AccessFailedCount);
userConfig.Ignore(u => u.LockoutEnd);
userConfig.Ignore(u => u.TwoFactorEnabled);
userConfig.Property(u => u.Id).HasColumnName("ID");
userConfig.Property(u => u.Email).HasColumnName("EMAIL").HasMaxLength(50);
[...]
Code: Select all
private readonly UserManager<ApplicationUser> _userManager;
[...]
public async void Test()
{
[...]
ApplicationUser user = await _userManager.FindByIdAsync(123);
user.EmailConfirmed = true;
user.SecurityStamp = Guid.NewGuid().ToString("D");
[...]
await _userManager.UpdateAsync(user);
//await _userManager.AddPasswordAsync() does not work too
}
Code: Select all
Microsoft.EntityFrameworkCore.Database.Command:Error: Failed executing DbCommand (69ms)
[Parameters=[p9='?' (DbType = Decimal), p0='?' (Size = 36), p10='?', p1='?' (Size = 25), p2='?' (DbType = Decimal), p3='?' (Size = 12), p4='?' (Size = 25), p5='?' (Size = 2), p6='?' (Size = 84), p7='?' (Size = 36), p8='?' (Size = 2)], CommandType='Text', CommandTimeout='0']
UPDATE USERS SET CONCURRENCYSTAMP = :p0, EMAIL = :p1, EXTERN = :p2, NAME = :p3, EMAIL_NORMALIZED = :p4, NAME_NORMALIZED = :p5, PASSWORDHASH = :p6, SECURITYSTAMP = :p7, DBNAME = :p8
WHERE ID = :p9 AND CONCURRENCYSTAMP IS NULL
I've also checked the DB query with Devarts dbMonitor:
Same result... I can see the 11 parameters but I don't know why p10 gets generated (and is NULL).
I can not find the root cause. Is something wrong with my code? Could this be a bug in the Devart .NET Core Package?
How can I find the cause for the not used parameter in the generated query?