dapper.contrib postres ошибка 42P01: отношение "" не существует - PullRequest
0 голосов
/ 22 октября 2018

Используя dapper.contrib, я получаю сообщение об ошибке: '42P01: relation "tblproduct" does not exist'.

Я полагаю, что это потому, что postgresql чувствителен к регистру.Сам объект имеет аннотацию схемы '[Table("tblProduct")]'.

Я не могу найти, почему сгенерированный sql будет использовать имя таблицы в нижнем регистре?Я использую 'SqlMapperExtensions.TableNameMapper', чтобы заставить дело, но это тоже не работает.Я что-то пропустил?Спасибо

    public ICollection<Product> GetAll(int count)
    {
        if (SqlMapperExtensions.TableNameMapper != null)
            return null;

        SqlMapperExtensions.TableNameMapper = (type) =>
        {
            return "tblProduct";
        };

        using (var connection = new NpgsqlConnection(connectionString))
        {
            connection.Open();
            return connection.GetAll<Product>().Take(count).ToList();
        }
    }

1 Ответ

0 голосов
/ 19 мая 2019

Вы можете увидеть, с чем генерирует Dapper:

NpgsqlLogManager.Provider = new ConsoleLoggingProvider(NpgsqlLogLevel.Trace, true, true);

Я исправил свою проблему на PostgresSQL с помощью qutoes:

SqlMapperExtensions.TableNameMapper = (type) => $"\"{type.Name}s\"";
...