Dapper.Contrib Insert Exception

-2

On asp.net core application when i execute insert operating application throws error. previously application was asp.net core 1.1 recently i updated to asp.net core 2.0

using (var con = _connectionFactory.CreateConnection())
{
    con.Open();
    using (var transaction = con.BeginTransaction())
    {
        try
        {
            if (regions.Any())
            {

                con.Insert(regions.Select(c =>
                {
                    c.UserId = userId;
                    return c;
                }), transaction);
            }
            transaction.Commit();
        }
        catch(Exception exception)
        {
            transaction.Rollback();
        }
    }
}

exception was

MySql.Data.MySqlClient.MySqlException (0x80004005): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '1s () values ()' at line 1 at MySql.Data.MySqlClient.MySqlStream.ReadPacket() at MySql.Data.MySqlClient.NativeDriver.GetResult(Int32& affectedRow, Int64& insertedId) at MySql.Data.MySqlClient.Driver.NextResult(Int32 statementId, Boolean force) at MySql.Data.MySqlClient.MySqlDataReader.NextResult() at MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior) at MySql.Data.MySqlClient.MySqlCommand.ExecuteNonQuery() at Dapper.SqlMapper.ExecuteImpl(IDbConnection cnn, CommandDefinition& command) in C:\projects\dapper\Dapper\SqlMapper.cs:line 552 at Dapper.SqlMapper.Execute(IDbConnection cnn, String sql, Object param, IDbTransaction transaction, Nullable1 commandTimeout, Nullable1 commandType) in C:\projects\dapper\Dapper\SqlMapper.cs:line 443 at MySqlAdapter.Insert(IDbConnection connection, IDbTransaction transaction, Nullable1 commandTimeout, String tableName, String columnList, String parameterList, IEnumerable1 keyProperties, Object entityToInsert) in C:\projects\dapper\Dapper.Contrib\SqlMapperExtensions.cs:line 897
at Dapper.Contrib.Extensions.SqlMapperExtensions.Insert[T](IDbConnection connection, T entityToInsert, IDbTransaction transaction, Nullable
1 commandTimeout) in C:\projects\dapper\Dapper.Contrib\SqlMapperExtensions.cs:line 355
at RecruiterinsiderPortal.Data.AgencyRegionRepository.Save(Int32 userId, List`1 regions) in C:\Empite\RI\RecruiterinsiderPortal\RecruiterinsiderPortal\libs\RecruiterinsiderPortal.Data\AgencyRegionRepository.cs:line 67

The mysql version is 5.7.19.

Here is the region model

 [Table("regions")]
    public class AgencyRegion
    {
        [Key]
        public int  Id { get; set; }
        public int UserId { get; set; }
        public int RegionId { get; set; }
    }

When I update dapper and contrib libraries to latest version which is 1.50.4 Insert, Update throws exception. So I downgraded Dapper to 1.50.2 and Contrib to 1.50.0 then works fine.

What was the issue? Why it does not work with latest versions mentioned above?

mysql
dapper
dapper-contrib
asked on Stack Overflow Feb 6, 2018 by Gayan • edited May 28, 2020 by Amit Joshi

0 Answers

Nobody has answered this question yet.


User contributions licensed under CC BY-SA 3.0