【问题标题】:Can't get EF Code First to work in MVC 4无法让 EF Code First 在 MVC 4 中工作
【发布时间】:2012-01-28 06:34:12
【问题描述】:

我在 VS 2010 中创建了一个新的 MVC 4 Internet 应用程序。我创建了一个“Item”模型和一个“ItemContext”类:

public class Item
{
    public int ItemID { get; set; }
    public string Name { get; set; }
}

public class ItemContext : DbContext
{
    public DbSet<Item> Items { get; set; }
}

我构建了项目,然后右键单击“Controllers”文件夹,并尝试添加一个新控制器:

当我尝试添加它时,我收到以下错误,我不明白:

我对此有更大的问题,但我想我会尝试尽可能简单地把它煮沸,看看我得到了什么。我错过了哪些步骤? “Internet 应用程序”项目已经有一个连接字符串,而且它也有一些与成员资格相关的东西。

更新这是项目创建的连接字符串:

<add name="DefaultConnection" 
     connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\aspnet.mdf;Integrated Security=True;User Instance=True;MultipleActiveResultSets=True" 
     providerName="System.Data.SqlClient" />

【问题讨论】:

  • 尝试将连接字符串名称更改为ItemContext。
  • @Eranga 做得很好,现在ColumnAttribute 是模棱两可的,并且出现了另一个与此相关的错误。 ColumnAttribute 没有出现在解决方案中
  • 可能在类的属性上定义了Column 属性。除了Item,还有模型类吗?
  • @Eranga 最后一个结果是 MVC 中的一个错误:\。模棱两可的参考在模板文件中。现在我可以创建控制器,更改连接字符串的名称有效(尽管我认为如果我不创建新控制器,它将默认为 DefaultConnection)
  • 啊。不知道这个错误。

标签: c# entity-framework-4 ef-code-first asp.net-mvc-4


【解决方案1】:

将连接字符串名称更改为ItemContext。

【讨论】:

    【解决方案2】:

    这是另一种无需重命名连接的方法。 DefaultConnection 可能是您的任何连接。

    public class ItemsContext : DbContext
    {
        public ItemsContext()
        : base("DefaultConnection")
        {
        }
    
        public DbSet<Item> Items { get; set; }
    }
    

    这种方法可以让您避免为每个新模型集使用新的连接名称。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-03
      • 2013-10-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多