C#学习教程:MigrationisnotworkingasIwant…在我的模型简单文件中。公共类电影{publicintID{get;放;}[必需]publicstringTitle{get;放;}}publicclassMovieDBContext:DbContext{publicDbSetMovies{get;放;}}另一个是VisualStudio帐户模型给我的:publicclassUsersContext:DbContext{publicUsersContext():base("DefaultConnection"){}publicDbSetUserProfiles{get;放;}}[Table("UserProfile")]publicclassUserProfile{[Key][DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]publicintUserId{get;放;}publicstring用户名{get;放;}}问题是……如果我添加一个权利publicintaaa{get;放;进行任何更改....这是因为迁移仅更新MovieDBContext中的类....所以我不得不添加如下内容:publicclassMovieDBContext:DbContext{publicDbSetMovies{get;放;}publicDbSetUser{get;set}}问题是的,在另一个项目中,我正在尝试更新AccountModel并尝试了这个解决方案,但它没有用......有人知道另一个解决方案吗?我认为您遇到的是“连接”问题。(查看我之前做的演练-和连接链接)迁移不会改变我的表(连接问题)代码首先创建表并将其放入一个DbContext-你真的不需要两个(至少我思考)。您需要“调整”连接。特别是您的UserContext指定了一个连接(DefaultConnection)。另一个(电影......)没有-这意味着另一个连接将被命名为MovieDbContext-它试图在你的配置文件中找到它-如果它没有成功-它使用你的默认“提供者”来找到Db-它将在那里创建一个新的Db。尽管您的UserContext可能已经在.config中定义了一个连接-并且该连接有效。只需将所有内容移至“UserContext”-或调整连接。请参阅随附的注释:拥有多个DbContext-s是所谓的多租户迁移-尚不支持(对于EF5)-在EF6中,每个数据库都有EF6多个上下文。它根本不能在同一个数据库中有“两个迁移表”——因为每个迁移/上下文都需要自己的。对于“hack”,您可以强制运行Add-Migration-通过执行类似Add-Migration-ConfigurationTypeNameTest.Migrations.MovieConfigurationInitialMovie之类的操作-并将其单独用于另一个项目-但这在单个项目中不起作用(它'抱怨等待迁移或其他东西)-如果你迁移到两个不同的地方-一旦你运行更新你点击'一个迁移表'。另一种解决方案是关闭迁移(一个),但我没有尝试过-或者运行连接到两个数据库的两个上下文-如果你想在两者之间“通信”,你真的不想要。无论哪种方式-这纯粹是为了“学术目的”-它对你的情况不起作用。您应该将所有表放在一个DbContext类中。一切都会好起来的。实体框架只迁移一个DbContext。预计。目前没有办法解决这个问题。这意味着非常简单明了,EF需要处理的所有内容都必须在这个单一上下文中。但是,这并不妨碍您出于不同目的在别处使用其他上下文。因此,在您的MovieDBContext中继续添加您的UserProfile实体集:publicDbSetUser{get;放;然后,在其他情况下,您只需要1)确保它们与同一个数据库交互,以及2)它们没有初始化策略,例如:公共类AccountsContext:DbContext{publicAccountsContext():base("name=ConnectionStringNameHere"){Database.SetInitializer(null);}公共DbSet用户{得到;放;这将使EF将此上下文视为现有数据库的映射,因此它不会尝试创建数据库表、迁移等。所有这些都将通过主上下文(在本例中为MovieDbContext)完成.您可以像这样使用enableMigration:EnableMigration-ContextTypeNameUsersContext或者您可以定义publicDbSetUser{get;放;}公共DbSet用户{得到;放;你的MovieDBContext像这样:publicclassMovieDBContext:DbContext{publicDbSetMovies{get;放;}publicDbSetUser{get;set}}并这样使用:以上是C#LearningTutorial:Migrationsdon'tworkasIwant...Asp.netEntityFramework分享的全部内容,如果对大家有用需要想了解更多C#学习教程,希望大家多加关注—EnableMigration-ContextTypeNameMovieDBContext本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
