【问题标题】:The model backing the <Mydb> context has changed since the database was created自创建数据库以来,支持 <Mydb> 上下文的模型已更改
【发布时间】:2015-03-21 06:18:51
【问题描述】:

大家好

我是.net MVC3的新手,我在Web.config文件中做了一个连接字符串,连接成功。下面是我的连接代码

<add name="StoreDB" connectionString="Data Source=AMIT-PC;Initial Catalog=Store;User ID=sa;Password=****;Integrated Security=False"
  providerName="System.Data.SqlClient" />

之后我为数据库表连接创建了DBConfig.cs 类文件,下面是我的代码

  public class Store : DbContext
  {
    public Store()
    {

    }
    public DbSet<RegisterModel> myapp { get; set; }    
    public DbSet<Application> ApplicationFormModels { get; set; }
  }

基本上我创建了两个模型。首先是 RegisterModel,Seconds 是 Application 模型。 当我运行此代码时发生错误

支持上下文的模型自数据库创建以来发生了变化。

当我只使用一个DbSet&lt;RegisterModel&gt; 时,表成功创建并且所有CURD 操作都成功完成,但是当我创建多个DbSet 时发生错误。

以下是截图

期待您的意见

提前致谢

【问题讨论】:

标签: c# asp.net-mvc asp.net-mvc-3 razor


【解决方案1】:

去你的

Global.asax-->Application_Start() 并添加Database.SetInitializer&lt;YourDbContext&gt;(null);

当您创建模型时,EF 中的 Code first 会将其映射到您的数据库。它创建存储在使用数据库创建的 EdmMetadata 表中的模式的哈希。现有数据库没有 EdmMetadata 表,因此没有 has,如果缺少该表,实现将抛出。

或者您也可以执行以下操作

 protected override void OnModelCreating(System.Data.Entity.ModelConfiguration.ModelBuilder modelBuilder) 
 { 
   modelBuilder.IncludeMetadataInDatabase = false; 
 } 

在您的数据库上下文中

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-19
    • 2011-04-05
    • 2015-04-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多