linq2db / linq2db.EntityFrameworkCore

Bring power of Linq To DB to Entity Framework Core projects
MIT License
462 stars 38 forks source link

Method not found in target type: MySqlConnector.MySqlBulkCopy.WriteToServer(IDataReader) #194

Closed Mitch528 closed 2 years ago

Mitch528 commented 2 years ago

Upgrading Pomelo.EntityFrameworkCore.MySql to verison 6.0.0 requires MySqlConnector 2.0.0. linq2db.EntityFrameworkCore throws this exception when using with the new version of MySqlConnector:

LinqToDB.LinqToDBException: Method not found in target type: MySqlConnector.MySqlBulkCopy.WriteToServer(IDataReader)
   at LinqToDB.Expressions.TypeMapper.<>c.<ReplaceTypes>b__26_0(ReplaceTypesContext context, Expression e)
   at LinqToDB.Expressions.TransformVisitor`1.Transform(Expression expr)
   at LinqToDB.Expressions.Extensions.Transform[TContext](Expression expr, TContext context, Func`3 func)
   at LinqToDB.Expressions.TypeMapper.ReplaceTypes(Expression expression, ReplaceTypesContext ctx)
   at LinqToDB.Expressions.TypeMapper.MapLambdaInternal(LambdaExpression lambda, Boolean mapConvert, Boolean convertResult, Boolean ignoreMissingMembers)
   at LinqToDB.Expressions.TypeMapper.BuildWrapperImpl(LambdaExpression lambda, Boolean wrapResult, Boolean optional)
   at LinqToDB.Expressions.TypeMapper.BuildWrapper(LambdaExpression lambda, Boolean optional)
   at LinqToDB.Expressions.TypeMapper.<BuildWrapperMethods>b__17_1(<>f__AnonymousType114`2 e)
   at System.Linq.Utilities.<>c__DisplayClass2_0`3.<CombineSelectors>b__0(TSource x)
   at System.Linq.Enumerable.SelectArrayIterator`2.ToArray()
   at LinqToDB.Expressions.TypeMapper.BuildWrapperMethods(Type wrapperType)
   at LinqToDB.Expressions.TypeMapper.FinalizeMappings()
   at LinqToDB.DataProvider.MySql.MySqlProviderAdapter.MySqlConnector.CreateAdapter()
   at LinqToDB.DataProvider.MySql.MySqlProviderAdapter.GetInstance(String name)
   at LinqToDB.DataProvider.MySql.MySqlDataProvider..ctor(String name, MappingSchema mappingSchema)
   at LinqToDB.DataProvider.MySql.MySqlDataProvider..ctor(String name)
   at LinqToDB.EntityFrameworkCore.LinqToDBForEFToolsImplDefault.CreateLinqToDbDataProvider(EFProviderInfo providerInfo, LinqToDBProviderInfo provInfo, EFConnectionInfo connectionInfo)
   at LinqToDB.EntityFrameworkCore.LinqToDBForEFToolsImplDefault.<>c__DisplayClass4_0.<GetDataProvider>b__0(ProviderKey k)
   at System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, Func`2 valueFactory)
   at LinqToDB.EntityFrameworkCore.LinqToDBForEFToolsImplDefault.GetDataProvider(EFProviderInfo providerInfo, EFConnectionInfo connectionInfo)
   at LinqToDB.EntityFrameworkCore.LinqToDBForEFTools.GetDataProvider(EFProviderInfo info, EFConnectionInfo connectionInfo)
   at LinqToDB.EntityFrameworkCore.LinqToDBForEFTools.CreateLinqToDbContext(DbContext context, IDbContextTransaction transaction)
   at LinqToDB.EntityFrameworkCore.LinqToDBForEFTools.ToLinqToDB[T](IQueryable`1 query)
   at LinqToDB.EntityFrameworkCore.LinqToDBForEFExtensions.FirstOrDefaultAsyncLinqToDB[TSource](IQueryable`1 source, CancellationToken token)

Packages: linq2db - 3.5.1 linq2db.EntityFrameworkCore - 6.5.0 Microsoft.EntityFrameworkCore - 6.0.0 Pomelo.EntityFrameworkCore.MySql - 6.0.0 MySqlConnector - 2.0.0

Mitch528 commented 2 years ago

This may be an issue with linq2db itself actually, may need to move this issue there.

MaceWindu commented 2 years ago

Yes, mysqlconnector 2 changed API and we don't support new signatures yet.

MaceWindu commented 2 years ago

Will try to include it into tomorrow's release of linq2db