" does not exist-6ren"> " does not exist-使用 dapper.contrib,我不断收到错误:“42P01:关系“tblproduct”不存在”。 我认为这是因为 postgresql 区分大小写。实体本身具有 '[Table("tblPro-6ren">
gpt4 book ai didi

c# - dapper.contrib postres 42P01 错误 : relation "" does not exist
转载 作者:行者123 更新时间:2023-11-29 13:42:43 25 4
gpt4 key购买 nike

使用 dapper.contrib,我不断收到错误:“42P01:关系“tblproduct”不存在”

我认为这是因为 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();
}
}

最佳答案

你可以看到 Dapper 生成了什么:

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

我用 qutoes 解决了我在 PostgresSQL 上的问题:

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

关于c# - dapper.contrib postres 42P01 错误 : relation "<table name>" does not exist,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52933334/

25 4 0