Я пытаюсь вставить в базу данных postgresql, используя dapper и simplecrud.
У моего объекта есть первичный ключ VARCHAR, который, как я понимаю, означает, что я должен включить теги [Key] и [Required] вмой POCO.
[Table("tube_data")]
class Tube : IEntity
{
//my primary key (name matches column name)
[Dapper.Key] [Dapper.Required]
public string tube_nr { get; }
//Constructors (probably not important)
private Tube()
{
}
public Tube(string tube_nr)
{
this.tube_nr = tube_nr;
}
//more code... just nullable properties (ints, floats and strings)
}
Когда я выполняю функцию, используя
_conn.Insert<Tube>(t);
, я получаю System.FormatException.Msgstr "Строка была не в правильном формате".Глядя на трассировку стека, я вижу, что Даппер вызывает System.Convert.ToInt64 ()
У меня есть другие объекты с автоматически увеличивающимися первичными ключами, которые работают без проблем (поэтому я знаю, что NpgSqlConnection работаетотлично).Фактически, все мои сущности VARCHAR PK терпят неудачу, в то время как все мои автоинкрементные сущности PK успешно выполняются.
У меня много свойств, поэтому я не хочу выписывать SQL вручную, если смогуизбегайте этого.
Как заставить SimpleCRUD правильно работать с первичными ключами VARCHAR / string?Я думал, что теги [Key] [Required] помогут.