EntityFramework-Extensions icon indicating copy to clipboard operation
EntityFramework-Extensions copied to clipboard

Error in BulkSynchronizeAsync

Open Joebu opened this issue 8 months ago • 1 comments

Description

When using BulkSynchronizeAsync , I encounter an error when attempting to synchronize entities that include a computed column . The computed column is added correctly to the database and mapped in the EF Core model, but the bulk operation fails to handle it correctly.

ModelConfiguration modelBuilder.Entity<Product>() .Property(x => x.CodePrefix) .HasComputedColumnSql("SUBSTR([Code], 1, 11)", stored: true);

Generated Column "CodePrefix" GENERATED ALWAYS AS (SUBSTR("Code", 1, 11)) STORED,

My Bulk Operations IgnoreOnSynchronizeInsertExpression = ignore => ignore.CodePrefix, IgnoreOnInsertExpression = ignore => ignore.CodePrefix, IgnoreOnSynchronizeUpdateExpression = ignore => ignore.CodePrefix,

Exception

An error occured while resolving mapping by name. See the inner exception for details Missing Column : CodePrefix On entity : Product On Table : "Products" at Z.BulkOperations.BulkOperation.() at Z.BulkOperations.BulkOperation.Execute() at Z.BulkOperations.BulkOperation.BulkSynchronize() at .BulkSynchronize[T](DbContext this, IEntityType entityType, IEnumerable1 list, Action1 options, Boolean forceSpecificTypeMapping) at .BulkSynchronize[T](DbContext this, IEnumerable1 entities, Action1 options) at DbContextExtensions.BulkSynchronize[T](DbContext this, IEnumerable1 entities, Action1 options) at DbContextExtensions.1.() at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state) --- End of stack trace from previous location --- at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread) --- End of stack trace from previous location --- at .1.MoveNext()

Further technical details

  • EF version: [EF Core v8.0.5]
  • EF Extensions version: [EFE Core 8.102.2.5]
  • Database Server version: [SQLITE]
  • Database Provider version (NuGet): [Microsoft.Data.Sqlite.Core v8.0.5]

Joebu avatar Jun 21 '24 01:06 Joebu