当使用EF生成数据库后,想多个网站使用同一个数据库,并且进行前台后台分离,或者以后进行app扩展使用。
但尝试分离后,发现第二个网站访问数据库时,会提示进行数据库结构改变,需要迁移的错误。
但并未使用过数据库迁移,也是重新生成的数据库。
后面同事查阅资料和研究,才发现是数据库初始化的问题。
Database.SetInitializer<PermissionContext>(null);
该代码是必须要执行一次的,一般新的网站,必须进行数据库初始化,可为空,没有啥意义,报错也是牛马不相及。
如果EF可以默认已经执行该代码,一旦有初始化需求,再进行重写即可。
但目前不支持这样的功能,那就自己手动加上吧。
步骤:
1、老网站还是不变,生成数据库。
2、新网站,加上代码即可。
public UserContext(string nameOrConnectionString)
: base(nameOrConnectionString)
{
Database.SetInitializer<PermissionContext>(null);
}