Я использовал «HasConversion» в моем DBContext, чтобы определить JSonArray (Language / Value) и сохранить его как текстовое поле на века, и он работает как шарм, я добавил новый проект в свое решение, ничего не изменилось, но потом Я получил новую ошибку при добавлении миграции, касающуюся «установки сравнения значений».
Моя Модель выглядит так:
public class Brand
{
public int Id { get; set; }
public new IList<LangValue> Name { get; set; } = new List<LangValue>();
}
и DBContext это как:
modelBuilder.Entity<Brand>(t =>
{
t.Property(p => p.Name).HasConversion(
v => JsonConvert.SerializeObject(v, Formatting.Indented, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Include}),
v => JsonConvert.DeserializeObject<IList<LangValue>>(v, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Include})
);
});
Это работало отлично, но после добавления нового проекта я получил желтую ошибку при добавлении миграции, и Модель не добавляется в новую базу данных.
Microsoft .EntityFrameworkCore.Model.Validation [10620] Свойство «Имя» для типа сущности «Бренд» является типом коллекции или перечисления с преобразователем значений, но без компаратора значений. Установите средство сравнения значений, чтобы обеспечить правильное сравнение элементов коллекции / перечисления.