Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 更新多个数据库MVC5_Asp.net Mvc_Database_Visual Studio 2013_Asp.net Mvc 5 - Fatal编程技术网

Asp.net mvc 更新多个数据库MVC5

Asp.net mvc 更新多个数据库MVC5,asp.net-mvc,database,visual-studio-2013,asp.net-mvc-5,Asp.net Mvc,Database,Visual Studio 2013,Asp.net Mvc 5,我有两个使用visual studio 2013的上下文。一个用于IdentityModel,另一个是我为主数据库创建的上下文。我遇到的问题是,每当我在PackageManager控制台中运行更新数据库时,它都会在这两个控制台中创建ApplicationDBContext数据库。我的主数据库从未创建过,因为它似乎将其视为ApplicationDBContext。我尝试过启用迁移-ContextTypeName DI_MVC.Models.DIDBContext,但它没有为DIDBContext类

我有两个使用visual studio 2013的上下文。一个用于IdentityModel,另一个是我为主数据库创建的上下文。我遇到的问题是,每当我在PackageManager控制台中运行更新数据库时,它都会在这两个控制台中创建ApplicationDBContext数据库。我的主数据库从未创建过,因为它似乎将其视为ApplicationDBContext。我尝试过启用迁移-ContextTypeName DI_MVC.Models.DIDBContext,但它没有为DIDBContext类创建主数据库表。我能够在VisualStudio2012中完成这项工作,在创建数据库时没有任何问题。但是,这没有ApplicationDBContext。对于我所做的错事,任何帮助都将不胜感激

下面是我的2个代码文件。我创建的普通IdentityModel和DIDBContext类。我还将显示web.config文件以及数据库连接。在App_Data文件夹中创建了2个.mdf文件,但两个数据库都包含成员表

using System;
using System.Data.Entity;
using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity.ModelConfiguration.Conventions;

namespace DI_MVC.Models
{
    public class DIDBContext : DbContext
    {
        public DIDBContext()
            : base("DIDBContext")
        {

        }

        public DbSet<DI_ConnectionStrings_CSI> CSIs { get; set; }
        public DbSet<DI_DropDownValues_DDV> DDVs { get; set; }
        public DbSet<DI_Types_DIT> DITs { get; set; }
        public DbSet<DI_FORM_DIF> DIFs { get; set; }
        public DbSet<DI_FormTabs_DFT> DFTs { get; set; }
        public DbSet<DFI_FormSections_DFS> DFSs { get; set; }
        public DbSet<DI_FormElements_DFE> DFEs { get; set; }
        public DbSet<DI_DFE_DFS_DDD> DDDs { get; set; }

        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            modelBuilder.Entity<DI_DFE_DFS_DDD>().HasKey(k => new { k.DDD_DFS_ID, k.DDD_DFE_ID });
            modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
        }
    }
}


using Microsoft.AspNet.Identity.EntityFramework;
using System;
using System.Data.Entity;
using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity.ModelConfiguration.Conventions;

namespace DI_MVC.Models
{
    // You can add profile data for the user by adding more properties to your ApplicationUser class, please visit http://go.microsoft.com/fwlink/?LinkID=317594 to learn more.
    public class ApplicationUser : IdentityUser
    {
        public DateTime BirthDate { get; set; }
        public string FirstName { get; set; }
        public string LastName { get; set; }
    }

    public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
    {
        public ApplicationDbContext()
            : base("DefaultConnection")
        {

        }
    }

}
使用系统;
使用System.Data.Entity;
使用System.ComponentModel.DataAnnotations.Schema;
使用System.Data.Entity.ModelConfiguration.Conventions;
名称空间DI_MVC.Models
{
公共类DIDBContext:DbContext
{
公共DIDBContext()
:base(“DIDBContext”)
{
}
公共DbSet CSIs{get;set;}
公共DbSet DDVs{get;set;}
公共数据库集DITs{get;set;}
公共DbSet DIFs{get;set;}
公共DbSet DFTs{get;set;}
公共数据库集DFSs{get;set;}
公共数据库集DFEs{get;set;}
公共DbSet DDDs{get;set;}
模型创建时受保护的覆盖无效(DbModelBuilder modelBuilder)
{
modelBuilder.Entity().HasKey(k=>new{k.DDD_DFS_ID,k.DDD_DFE_ID});
modelBuilder.Conventions.Remove();
}
}
}
使用Microsoft.AspNet.Identity.EntityFramework;
使用制度;
使用System.Data.Entity;
使用System.ComponentModel.DataAnnotations.Schema;
使用System.Data.Entity.ModelConfiguration.Conventions;
名称空间DI_MVC.Models
{
//您可以通过向ApplicationUser类添加更多属性来为用户添加配置文件数据,请访问http://go.microsoft.com/fwlink/?LinkID=317594 了解更多。
公共类应用程序用户:IdentityUser
{
公共日期时间出生日期{get;set;}
公共字符串名{get;set;}
公共字符串LastName{get;set;}
}
公共类ApplicationDbContext:IdentityDbContext
{
公共应用程序上下文()
:base(“默认连接”)
{
}
}
}

你并不孤单。如果为单个DbContext启用了迁移,那么它将只更新为其启用迁移的DbContext,或者至少让您指定要更新的DbContext,这是有意义的。然而,情况并非如此

读和写


TLDR启用迁移–启用自动迁移

还有一件事要提。无论我使用ApplicationDbContext还是DIDBContext,初始迁移都是有效的。这似乎是第二次移民问题。每次我尝试强制一个新的迁移上下文类型时,它都会不断地告诉我,即使我已经运行了更新数据库,以前的迁移仍然挂起。“无法生成显式迁移,因为以下显式迁移处于挂起状态:[201311300033115_InitialDIDBCreate]。请在尝试生成新的显式迁移之前应用挂起的显式迁移。”我已经让它工作了,但我对如何操作不太满意。我基本上只是从项目中删除了201311300033115_InitialIDBCreate,错误不再出现。它运行更新时没有出现问题。每次更新和迁移我都应用了-ConfigurationTypeName参数,将其设置为每个数据库上下文的特定配置类。这也不是答案。希望有人,甚至我自己,能对此有一个更好的解决方案。下面列出了一些有用的链接:[[