0

对于专家来说,这应该是一个简单直接的问题,但我无法弄清楚。

已下载 VS 2012。通过 ASP.NET 网站上的“Contoso 大学 Web 应用程序”在线教程运行。这适用于 MVC4 和 EF5。

当我进入第 1 课中创建控制器的部分时,出现以下错误:

“无法检索 'ContosoUniversity.Models.Course' 的元数据。找不到方法:'Void System.Data.Objects.ObjectsContextOptions.set_UserConsistentNullReferenceBehavior(Booleon)'。

基本上,我无法创建任何控制器而不会出现此错误。我觉得我正确地遵循了下载过程和教程。但是有某种错误。

这是我在课程中直接使用的连接字符串:

<
add name="SchoolContext" 
connectionString="Data Source=(LocalDb)\v11.0;
Initial Catalog=ContosoUniversity;
Integrated Security=SSPI;
AttachDBFilename=|DataDirectory|\ContosoUniversity.mdf" providerName="System.Data.SqlClient" 
/>

模型是这样的:

namespace ContosoUniversity.Models
{
    public class Course
    {
        [DatabaseGenerated(DatabaseGeneratedOption.None)]
        public int CourseID { get; set; }
        public string Title { get; set; }
        public int Credits { get; set; }

        public virtual ICollection<Enrollment> Enrollments { get; set; }
    }
}

SchoolContext 是这样的:

namespace ContosoUniversity.DAL
{
    public class SchoolContext : DbContext
    {
        public DbSet<Student> Students { get; set; }
        public DbSet<Enrollment> Enrollments { get; set; }
        public DbSet<Course> Courses { get; set; }

        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
        }
    }
}
4

1 回答 1

1

请将此部分添加到 web.config 文件中的 entityFramework 元素中;MVC 脚手架将使用这种类型来查找您的数据库上下文。如果您使用数据库初始化程序将测试数据加载到您的数据库,则必须按如下方式添加。

<entityFramework>
  <contexts>
    <context type="ContosoUniversity.DAL.SchoolContext, ContosoUniversity">
      <databaseInitializer type="ContosoUniversity.DAL.SchoolInitializer, ContosoUniversity" />
    </context>
  </contexts>
<entityFramework>
于 2014-03-07T07:40:59.747 回答