因为业务需要,引入了EntityFramework.Extended扩展组件做数据批量插入、更新与删除,如更新:
using (var dbContext = new MyDbContext())
{
dbContext.tb_com_chatmemberconfig.Where(r => r.chatID == chatID ).Update(r => new tb_com_chatmemberconfig{ setTop= 0,updateTime=now });
dbContext.SaveChanges();
}
结果运行报错:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '[yigong_job].[tb_com_chatmemberconfig] SET [setTop] = 0, [updateTime] = '201' at line 1
原因是我们数据库用的是Mysql,而扩展组件默认使用MSSql(看报错信息就可以看出来),所以需要配置使EntityFramework.Extended支持Mysql,配置方式如下:
在MyDbContext文件中添加
public class DbContextConfiguration : DbConfiguration
{
public DbContextConfiguration()
{
EntityFramework.Locator.Current.Register<EntityFramework.Batch.IBatchRunner>(() => new MySqlBatchRunner());
}
}
在MyDbContext类名上添加配置:
[DbConfigurationType(typeof(DbContextConfiguration))] //增加配置
public class SchoolDbContext : DbContext{
........
}