我有一个包含3个项目的VS解决方案:
AppName.Client
AppName.Business
AppName.Web
客户端是分发给很多用户的WPF客户端。 Web是一个具有中央数据存储(SQL Server)的网站。客户端具有SqlServerCe 4.0数据库,可通过自定义WinApi将数据复制到服务器。客户端和Web在公共业务项目中使用相同的数据库结构和业务逻辑。
当我听说EF迁移时,我很高兴,因为它可以在为所有客户发布更新时解决许多麻烦。但是我很难让它发挥作用......
1)当我在软件包管理器控制台中启动迁移时,它会抱怨,因为在哪里找到要使用的上下文并不明显。有一个名为-Projectname的开关可以使它工作,尽管它仍然会给出同样的抱怨。
2)当我运行客户端应用程序时,完全绕过了迁移代码!数据库的InitialCreate标记与Migrations文件夹中所述的标记不同。没有命中Migration Up方法,显然没有应用自定义。
如果DataContext和Migration文件夹不在启动项目中,如何触发迁移代码?
我真的希望将所有核心逻辑保留在常见的业务项目中。
我目前通过在启动时调用DataContext类中的方法来指定数据库的位置:SetClientLocation和SetServerLocation。这会绕过迁移吗?