На самом деле у меня есть свойство типа char, которое я использую для хранения строкового значения guid.
Моя текущая настройка:
- MySQL
- EF Code-First
- EF Migration
Модель:
public class Employee
{
public string Id { get; set; }
}
EF config
public class EmployeeConfiguration : EntityConfiguration<Employee>
{
public EmployeeConfiguration()
{
HasKey(x => x.Id);
Property(x => x.Id)
.HasColumnType(“char”)
.HasMaxLength(36)
.HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);
}
}
Проблема:
System.FormatException генерируется, если я делаю следующее:
1. Вставьте с идентификатором, который не соответствует формату руководства.
2. Запрос вышеуказанного класса Employee из базы данных, содержащей Id, который не соответствует формату guid.
Если я попытаюсь вставить или выполнить запрос прямо к базе данных с использованием sql (без использования EF), все в порядке.
Подскажите, пожалуйста, как мне обойти эту проблему?
Редактировать 1:
Сообщение об ошибке
Guid должен содержать 32 цифры с 4 штрихами (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx).
Решение, которое сработало для меня
По предложению «Джейсона Армстронга» я использовал другую длину символа, я пошел с символом (37).