【问题标题】:The model backing the context has changed支持上下文的模型已更改
【发布时间】:2012-07-26 14:06:09
【问题描述】:

我已经看到了其他答案,但我无法让它发挥作用。我有一个简单、干净的网站,有两个模型:

博客模型:

Imports System.Data.Entity
Imports System.ComponentModel.DataAnnotations

Public Class Blog

    Public Property BlogId() As Integer

    Public Property Name() As String
    Public Property Description() As String
    Public Property DateCreated As Date

    Public Overridable Property Articles() As ICollection(Of Article)

End Class

Public Class BlogDbContext

    Inherits DbContext
    Public Property Blogs As DbSet(Of Blog)

End Class

文章型号:

Imports System.Data.Entity
Imports System.ComponentModel.DataAnnotations

Imports GemcoBlog

Public Class Article

    Public Property ArticleId() As Integer
    Public Property BlogId() As Integer
    Public Property Title() As String
    Public Property Body() As String
    Public Property DateCreated As Date

Public Overridable Property Blog() As Blog

End Class

Public Class ArticleDbContext
    Inherits DbContext
    Public Property Articles As DbSet(Of Article)
    Public Property Blogs As DbSet(Of Blog)
End Class

当我添加创建控制器和视图的控制器,然后运行时,我收到此错误:

支持“ArticleDbContext”上下文的模型自 数据库已创建。手动删除/更新数据库,或 使用 IDatabaseInitializer 实例调用 Database.SetInitializer。 例如,DropCreateDatabaseIfModelChanges 策略将 自动删除并重新创建数据库,并可选择为其播种 使用新数据。

来源错误:

第 12 行:第 13 行:函数 Index() As ViewResult 第 14 行:
暗淡文章 = db.Articles.Include(Function(a) a.Blog) 第 15 行:
返回 View(articles.ToList()) 第 16 行:结束函数

源文件:C:\Users\darchual\documents\visual studio 2010\Projects\Blog\Blog\Controllers\ArticleController.vb
线路:14

我该如何解决这个错误?

编辑:

我通过从数据库中删除 EdmMetaData 表来解决此问题。我需要这张桌子吗?它对任何事情都有好处吗?

谢谢。

【问题讨论】:

  • 错误消息似乎建议您使用 2 种可能的方法来解决此问题。当你尝试它们时发生了什么?
  • 感谢您的快速回复。我编辑了这个问题,说:“我通过从数据库中删除 EdmMetaData 表来解决这个问题。我需要这个表吗?它有什么用吗?”
  • EdmMetaData 被实体框架用来验证当前模型是否与数据库匹配。删除它会使 EF 认为一切都是最新的,因此它将无法检测到未来的变化。

标签: asp.net-mvc vb.net asp.net-mvc-3


【解决方案1】:

对我来说,解决这个问题的方法是从数据库中删除 EdmMetaData 表。

【讨论】:

  • 如何?,请详细说明。这个问题似乎也被不同的 EF 版本混淆了。
  • 我通过右键单击它并单击删除从数据库中删除了该表。我不再使用 CodeFirst 方法,我只是创建数据库然后编写模型来反映它。
猜你喜欢
  • 2013-03-30
  • 2013-08-24
  • 1970-01-01
  • 2023-03-23
  • 2015-04-29
  • 2012-07-04
  • 1970-01-01
  • 1970-01-01
  • 2014-04-19
相关资源
最近更新 更多