对于专家来说,这应该是一个简单,直接的问题,但我无法弄清楚这一点。
下载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>();
}
}
}
答案 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>