我正在学习有关实体框架和 C# 入门的教程。 我正在按照 [教程][1] 进行操作,当我尝试创建新的脚手架项目时出现错误。当我选择模型类、数据上下文类并选择控制器名称时,我收到以下错误消息:"运行所选代码生成器时出错:"获取类型'ContosoUniversity.Models.Student'时出错。尝试重建项目。
我确实重建了该项目,实际上两次,并且不断收到此错误消息。谁能告诉我会发生什么?
以下是我创建新脚手架项目的步骤:
-
右键单击"解决方案资源管理器"中的"控制器"文件夹,选择"添加"。 ,然后单击新建基架项目。
在"添加基架"对话框中,选择"带视图的 MVC 5 控制器"。 使用实体框架,然后选择"添加"。在添加控制器中 对话框中,进行以下选择,然后选择"添加":
模范班:学生(ContosoUniversity.Models(。(如果您没有看到 下拉列表中的此选项,生成项目,然后重试。
数据上下文类:SchoolContext (ContosoUniversity.DAL(。
控制器名称:学生控制器(不是学生控制器(。
保留其他字段的默认值。
这是我在学生类文件中的"模型"下设置代码的方式:
using System; using System.Collections.Generic; namespace ContosoUniversity.Models { public class Student { public int ID { get; set; } public string LastName { get; set; } public string FirstMidName { get; set; } public DateTime EnrollmentDate { get; set; } public virtual ICollection<Enrollment> Enrollments { get; set; } } }
最后,这就是我如何设置与本教程中使用的 localDB 的连接。
> <connectionStrings>
> <add name="SchoolContext" connectionString="Data Source=(LocalDb)MSSQLLocalDB;Initial
> Catalog=ContosoUniversity1;Integrated Security=SSPI;"
> providerName="System.Data.SqlClient"/> </connectionStrings>
更改连接字符串
由此
<add name="xxx" connectionString="Data Source=xxx;initial catalog=xxx;Persist Security Info=True;User ID=xxxx;Password=xxxx;MultipleActiveResultSets=True" providerName="System.Data.SqlClient" />
对此
<add name="xxx" connectionString="metadata=res://*/EFMOdel.csdl|res://*/EFMOdel.ssdl|res://*/EFMOdel.msl;provider=System.Data.SqlClient;provider connection string="data source=xxxx;initial catalog=xxxx;persist security info=True;user id=xxxx;password=xxx;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />