【发布时间】:2020-01-24 04:38:35
【问题描述】:
我在我的 DBContext 中使用了“HasConversion”来定义一个 JSonArray(语言/值)并将其保存为一个文本字段,它的作用就像一个魅力,我在我的解决方案中添加了一个新项目,但没有任何改变我在添加有关“设置值比较器”的迁移时遇到新错误。
我的模型是这样的:
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] 实体类型“品牌”上的属性“名称”是具有值转换器但没有值比较器的集合或枚举类型。设置一个值比较器以确保正确比较集合/枚举元素。
【问题讨论】:
标签: asp.net-core dbcontext data-conversion jsonconverter entity-framework-core-3.1