繁体   English   中英

dapper.contrib postres 42P01错误:关系“ <table name> “ 不存在

[英]dapper.contrib postres 42P01 error: relation “<table name>” does not exist

使用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();
        }
    }

您可以看到Dapper生成的内容:

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

我用qutoes解决了PostgresSQL的问题:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM