我的模型看起来像这样...
[PrimaryKey("TaskId")]
public class Task
{
public int TaskId { get; set; }
[StringLength(1000)]
[DisplayName("What do you want to do?")]
public string Description { get; set; }
[DisplayName("When do you want it done?")]
[DisplayFormat(DataFormatString = "{0:MM/dd/yyyy}", ApplyFormatInEditMode = false)]
[DataType(DataType.Date)]
public DateTime CompleteByDate { get; set; }
public bool IsCompleted { get; set; }
public DateTime InsertDate { get; set; }
public DateTime UpdateDate { get; set; }
}
如果我尝试从 Task 表中获取数据,我将看到的第一个错误是...
ERROR: 42P01: relation "Task" does not exist
据我所知,问题是 PetaPoco 生成这样的 sql ......
SELECT "Task"."TaskId", "Task"."Description", "Task"."CompleteByDate", "Task"."IsCompleted", "Task"."InsertDate", "Task"."UpdateDate" FROM "Task"
因此,对于引号,大写很重要,并且在 DB 中,如果将列名放在引号中,则只能以全部小写形式识别列名。我想知道是否有办法改变这种情况。我目前看到的唯一解决方法是让我的模型看起来像这样(注意大小写更改)......
[PrimaryKey("taskid")]
[TableName("task")]
public class Task
{
[Column("taskid")]
public int taskid { get; set; }
[StringLength(1000)]
[DisplayName("What do you want to do?")]
public string description { get; set; }
[DisplayName("When do you want it done?")]
[DisplayFormat(DataFormatString = "{0:MM/dd/yyyy}", ApplyFormatInEditMode = false)]
[DataType(DataType.Date)]
public DateTime completebydate { get; set; }
public bool iscompleted { get; set; }
public DateTime insertdate { get; set; }
public DateTime updatedate { get; set; }
}
我不希望我的属性都是小写的。为什么我必须这样做,这是唯一的解决方法吗?