实体框架:字符串未被识别为有效的布尔

时间:2017-06-12 09:58:15

标签: c# mysql entity-framework

使用Entity Framework加载数据时,我遇到以下异常:

  

字符串未被识别为有效的布尔值。

我使用Code First Entity框架和MySql数据库。

我发现问题出在我的bool专栏上。当我在MySql中直接更改它们以使用BIT而不是自动生成的TINYINT时,一切正常。但有没有办法解决它而无需手动更改数据库中的数据类型?

我尝试在我的DbContext中添加它:

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    modelBuilder.Properties()
                .Where(x => x.PropertyType == typeof(bool))
                .Configure(x => x.HasColumnType("bit"));
    base.OnModelCreating(modelBuilder);
}

但这似乎只会影响我添加bool列的新迁移。然后它们是正确的数据库类型BIT。

但最初的模型也有一些bool列。当我删除所有表并调用Update-Database重新创建它时,它会使用TINYINT类型生成它们,这在加载数据时再次产生错误。我必须再次在数据库中手动修复它。

0 个答案:

没有答案