ActiveRecord 映射:
[ActiveRecord("JobTitle",Schema="public")]
public class JobTitle :ActiveRecordValidationBase<JobTitle>
{
[PrimaryKey(Column = "Id")]
public virtual int Id { get; set; }
[Property(Column = "Description")]
public virtual string Description { get; set; }
[Property(Column = "Title", NotNull = true)]
public virtual string Title { get; set; }
}
数据库连接:
数据库配置:
public class DbConfig
{
public static void Configure()
{
var connectionString=ConfigurationManager.ConnectionStrings["PgConnection"].ConnectionString;
var source = ActiveRecordSectionHandler.Build(DatabaseType.PostgreSQL82,connectionString);
ActiveRecordStarter.Initialize(source, typeof(JobTitle));
}
}
并开始应用程序初始化:
测试例如表:
//
// GET: /Home/
public string Index()
{
var jobTitle= JobTitle.TryFind(1);
return jobTitle.Title;
}
获取活动记录时出错:
跟踪是:
我知道该请求是错误的。因为错误地发送到 pg sql 查询。
这是我的“JobTitle”表的简单查询:
select * from public.jobtitle => Castle Active Record
select * from public."jobtitle" => Pg
我该如何解决这个铸造问题?
PostgreSQL 标识符是区分大小写; "JobTitle"
不等于"jobtitle"
。然而,不带引号的标识符是折叠式为小写。 SQL 标准要求大小写折叠。
这意味着如果您使用以下命令创建表:
CREATE TABLE "JobTitle" (...)
您必须始终将其称为:
SELECT * FROM "JobTitle";
如果省略引号:
SELECT * FROM JobTitle;
PostgreSQL 大小写折叠JobTitle
to jobtitle
你会得到一个关于表格的错误jobtitle
没有现有的。
要么一致引用,要么使用全部小写标识符。
更多内容在用户手册的词汇结构部分 http://www.postgresql.org/docs/current/static/sql-syntax-lexical.html.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)