У меня есть следующая модель:
public class LogData
{
public Guid ID { get; set; }
public string Name { get; set; }
}
Я использую Entity Framework Core , чтобы сохранить эти модели в базе данных SQLite , она хорошо работает.
Мне нужно удалить из данных (это динамически, я не могу использовать объекты), поэтому я использую следующую команду:
string command="DELETE FROM LogData WHERE ID IN ('ea53b72a-4ab2-4f88-8f1d-0f96baa7cac7')";
context.Database.ExecuteSQLCommand(command);
В соответствии с синтаксисом SQLite , это действительно.
К сожалению, в результате я получаю 0, поэтому ни одна строка не была затронута.Когда я удаляю условие WHERE
, удаляет содержимое таблицы .
У меня есть предположение, что в качестве ключевого столбца является Guid
, и оно сохраняется как BLOB
, простой движок SQLite не может его найти.
Поэтому я попытался изменить команду следующим образом:
string command="DELETE FROM LogData WHERE HEX(ID) IN ('ea53b72a-4ab2-4f88-8f1d-0f96baa7cac7')";
context.Database.ExecuteSqlCommand(command);
Также попробовал это:
string command="DELETE FROM AuditLog WHERE HEX(ID) = 'ea53b72a-4ab2-4f88-8f1d-0f96baa7cac7'";
context.Database.ExecuteSqlCommand(command);
Это тоже:
string command="DELETE FROM AuditLog WHERE ID = 'ea53b72a-4ab2-4f88-8f1d-0f96baa7cac7'";
context.Database.ExecuteSqlCommand(command);
Никто из них не помог.
Что мне делать с этим?