Я экспериментирую с Peta POCO ORM, и мне это очень нравится, однако есть одна вещь, которую я не могу заставить работать. Я использую MS SQL и таблицу с уникальным идентификатором в качестве первичного ключа. Однако, когда я вставляю новую запись, POCO выдает InvalidCastException, пытаясь преобразовать DBNull в Guid. Я создал тривиальный пример. Определение таблицы MS SQL:
CREATE TABLE MyTable
(
id uniqueidentifier NOT NULL DEFAULT newid(),
name nvarchar(50) NULL,
surname nvarchar(50) NULL,
CONSTRAINT pk_MyTable PRIMARY KEY (id)
)
а затем в С# у меня есть:
[PetaPoco.TableName("MyTable")]
[PetaPoco.PrimaryKey("id")]
public class MyTable
{
public Guid id { get; set; }
public string name { get; set; }
public string surname { get; set; }
}
и, наконец, я пытаюсь вставить новые записи:
using (var conn = new SqlConnection(myConnString))
{
conn.Open()
using (var db = new PetaPoco.Database(conn))
{
for (int i = 0; i < 3; i++)
{
var table = new MyTable() { name = "oh my", surname = i.ToString() };
db.Insert(table);
}
}
}
Спасибо за любую помощь