一个解决方案中EF不安装在启动项目中的Code-frist解决办法

Entity-Framework解决方案,非启动项使用如何进行数据迁移

1数据迁移的基本命令

如果DBcontext不在启动项目中,
命令格式如下`

Enable-Migrations -ProjectName "dbcontext所在项目名称" -ContextTypeName "dbcontext类名" -StartUpProjectName "启动项目名字" -Force

注意事项:
1.必须要带引号
2.要将链接字符串从项目所在的APP.Config中加入到启动项目的APP.Config中,如果不添加,迁移时会报错,另外程序启动时也会报错

Add-Migration -ProjectName "dbcontext所在项目名称"
Update-Database -ProjectName "dbcontext所在项目名称"

至此可以正常迁移成功。

但是程序启动仍有可能报错,因为EF没有在启动项目中安装,所有找不到ADO.net 的提供程序。
No Entity Framework provider found for the ADO.NET provider with invariant name ‘System.Data.SqlClient’

所有需要在上下文中添加如下语句

    public partial class LocalSqlContext : DbContext
    {
        public LocalSqlContext()
            : base("name=LocalSqlContext")
        {
           
        }
      

        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
           
            //用于分离界面与EF框架,添加上这一句,并且在appconfig中添加连接字符串才可以。
            var instance = System.Data.Entity.SqlServer.SqlProviderServices.Instance;
        }

参考链接:https://stackoverflow.com/questions/21641435/error-no-entity-framework-provider-found-for-the-ado-net-provider-with-invarian

你可能感兴趣的:(visual,studio)