我有使用EF codefirst方法创建的数据模型。首先,我在我的mvc应用程序的Models文件夹中创建了模型类,并从中创建了我的数据库。 但是现在我想在我的解决方案中添加另一个使用相同模型(数据库)的项目,所以我创建了一个类库项目(BM.Core)并将我的模型,上下文类和Repository放在该项目中并创建了另一个类库项目(BM.Services)并将我的所有服务类放入其中,访问其中的存储库和模型类。
然后我从SSMS中删除了我的数据库,然后在我的新模型项目上启用了迁移,BM.Core和数据库被创建。但是当我访问我的Repository类中的上下文时,我得到了 跟随错误
创建模型时无法使用上下文。如果在OnModelCreating方法中使用上下文,或者同时由多个线程访问相同的上下文实例,则可能抛出此异常
所以我在google上搜索这个错误,我从中得到了解决方案:post
我把
ctx.Database.Initialize(force: false);
在我的存储库构造函数上,虽然应用程序正在运行,但是当我重建我的模型项目(BM.Core)时,我收到以下错误
支持' BookManyContext'自创建数据库以来,上下文已更改。考虑使用Code First Migrations来更新数据库(http://go.microsoft.com/fwlink/?LinkId=238269)。
因此,每次重建模型项目时,我都需要重做迁移和更新数据库过程,但有趣的是DbMigration的Up and Down方法在迁移时为空。
我按照以下方式运行迁移:
enable-migrations -contexttypename BookManyContext
add-migration InitialCreate3
update-database
我的代码有什么问题