我正在调查ServiceStack,并使用OrmLite来对付PostgreSQL数据库。我创建了我的POCO类,如下所示:我可以让OrmLite使用小写字母作为PostgreSQL列名称,而不是使用小写字母命名吗?
public class Company
{
[AutoIncrement]
public long Id { get; set; }
public string CompanyName { get; set; }
public int NumberOfLicenses { get; set; }
}
我也设置在Global.asax文件中的数据库连接,每对SS站点上的说明。代码如下:
container.Register<IDbConnectionFactory>(
c => new OrmLiteConnectionFactory("Server=localhost;Port=5432;SearchPath=company;Database=company;User Id=ABC; Password=XYZ;", PostgreSqlDialect.Provider)
{
ConnectionFilter = x => new ProfiledDbConnection(x, Profiler.Current)
});
正如您所看到的,我使用了PostgreSQL方言提供程序和小型分析器。由于我的测试,我只是将假数据在这里也:
using (IDbConnection db = container.Resolve<IDbConnectionFactory>().Open())
{
db.Insert(new Company { CompanyName = "Company A", NumberOfLicenses = 13});
db.Insert(new Company { CompanyName = "Company B", NumberOfLicenses = 82});
db.Insert(new Company { CompanyName = "Company C", NumberOfLicenses = 16});
db.Insert(new Company { CompanyName = "Company D", NumberOfLicenses = 8});
db.Insert(new Company { CompanyName = "Company E", NumberOfLicenses = 107});
db.Insert(new Company { CompanyName = "Company F", NumberOfLicenses = 56});
}
当我运行应用程序,我得到的错误:错误:42703:列关系的“COMPANY_NAME”,“公司”不存在
这很有意义,因为我的数据库在公司表中有一个名为companyname的列,而不是company_name。 PostgreSQL是特别关于案件,所以我使我的列名全部小写。但是,我的POCO属性是骆驼案件。它看起来像PostgreSQL提供程序代码强制camelcase属性在每个大写字母之间用_符号命名。在数据库中,我暂时将公司名称列重命名为company_name,并且确实将错误移至了NumberOfLicenses属性,该属性变为number_of_licenses。
我可以更改此行为吗,以便我的POCO属性映射为小写而不带_符号?
感谢