Скорее всего, уже слишком поздно, чтобы ответить на этот вопрос для оригинального плаката, но для других там ...
Насколько я понимаю, сохранение не работает для столбцов Guid. PetaPoco знает, является ли это вставкой, а не обновлением, если значение ключа отличается от значения по умолчанию. В случае, если числовой это будет 0, в случае Guid это будет «00000000-0000-0000-0000-000000000000».
Вот выдержка из метода IsNew
// Common primary key types
if (type == typeof(long))
return (long)pk == 0;
else if (type == typeof(ulong))
return (ulong)pk == 0;
else if (type == typeof(int))
return (int)pk == 0;
else if (type == typeof(uint))
return (uint)pk == 0;
// Create a default instance and compare
return pk == Activator.CreateInstance(pk.GetType());
В случае Guid последний оператор всегда будет возвращать false, даже если ваш первичный ключ - все нули. Там действительно должно быть другое, если так:
else if (type == typeof(Guid))
return Guid.Equals(pk, Activator.CreateInstance(pk.GetType()));
Однако я не проверял, нужно ли менять это единственное, чтобы работал ключ GUID. После вставки записи PetaPoco пытается проверить значение ключа для вновь вставленной записи, что может привести к сбою.