2017-04-15 66 views
0

我使用EF6的Code First迁移多个型号手段通过多种的DbContext和迁移与单个数据库的工作,在MVC5更新数据库!如何以编程方式从mvcArea

为什么?

因为我想从我的区域添加新的实体到数据库!所以每个区域都有自己的dbContextMigrations文件。我在控制台包管理器中使用Update-Database命令,并且我的数据库将更新没有任何问题。

由于每一个机构都知道:您可以从您的解决方案的各个项目的更新您的数据库,但如果你将其设置为的解决方案StartUpProject

和我的挑战是什么,我在上面大段引用说!因为在另一个步骤,我想通过这个代码编程方式更新我的数据库:

 //ActionResult of my Area: 
    public ActionResult Create() 
    { 
     var configuration = new Configuration(); 
     var migrator = new DbMigrator(configuration); 
     migrator.Update(); //got Error in this line 
     return View(); 
    } 

我得到

与网络相关的或特定于实例的错误

在指定行,我知道为什么!..因为我的Area Project没有设置为我的解决方案的StartUpProject,它不应该是。

那么我如何处理这种情况在你的看法?

回答

0

我知道。我应该给的ConnectionString我的配置实例,直是这样的:

 public ActionResult Create() 
    { 


     var configuration = new Configuration(); 
     configuration.TargetDatabase = new DbConnectionInfo(
        "Server=.;Database=SegalFrameWork;Trusted_Connection=True;", 
        "System.Data.SqlClient"); 

     configuration.ContextKey = "BlogDbContext"; 
     var migrator = new DbMigrator(configuration); 
     migrator.Update(); 
     return View(); 
    } 

现在也没有必要从web.config中读取连接字符串,因此它不需要任何启动项目找到它。