无法检索元数据

时间:2013-10-30 19:06:38

标签: asp.net-mvc-4

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

下载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>();
        }
    }
}

1 个答案:

答案 0 :(得分:1)

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

<entityFramework>
  <contexts>
    <context type="ContosoUniversity.DAL.SchoolContext, ContosoUniversity">
      <databaseInitializer type="ContosoUniversity.DAL.SchoolInitializer, ContosoUniversity" />
    </context>
  </contexts>
<entityFramework>