首页 > 解决方案 > 无法通过 Entity/C# 中的嘲笑来生成新的控制器

问题描述

我正在学习如何开始使用 Entity Framework 和 C#。我按照 [tutorial][1] 进行操作,但在尝试创建新的脚手架项目时出现错误。当我选择模型类、数据上下文类并选择控制器名称时,我收到以下错误消息: “运行所选代码生成器时出错:'获取类型'ContosoUniversity.Models.Student'时出错。尝试重建项目。”

我确实重建了项目,实际上两次,我一直收到这个错误消息。谁能告诉我可能会发生什么?

这些是我创建新的脚手架项目所采取的步骤:

这就是我在我的学生类文件中设置代码的方式,在模型下:

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>

标签: c#entity-frameworkasp.net-mvc-controller

解决方案


更改连接字符串

由此

<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=&quot;data source=xxxx;initial catalog=xxxx;persist security info=True;user id=xxxx;password=xxx;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />

推荐阅读