c#-尝试创建ASP.NET MVC 4控制器时出现FileNotFound异常
作者:互联网
我正在尝试仅使用SQL Server 2008而不是CE遵循Contoso University tutorial.我可以使用PC的名称和Windows身份验证连接到SQL Server Management Studio中的数据库引擎.我尚未使用它创建数据库,因为我正在尝试使用EF Code First.
这是我的连接字符串:
<add
name="SchoolContext"
connectionString="Data Source=CARSON-PC\CARSON;Integrated Security=true"
providerName="System.Data.SqlClient"/>
我尝试通过右键单击controllers文件夹并选择Add-> Controller …并根据教程设置结果对话框来添加控制器.我结束时出现一个对话框,告诉我抛出了FileNotFoundException,并且该文件是一个临时dll:
该对话框抛出了五次(我假设每个生成的模板文件一次),最后我得到一个控制器,但没有生成的模板.
我怀疑这与我的连接字符串或我的SQL Server安装有关,因为我被卡在这上面了一段时间,在尝试正确设置连接字符串时,在此阶段会出现各种错误.
为了完整起见,这是我试图为以下对象生成控制器的模型:
public class Student {
public int StudentID { get; set; }
public string LastName { get; set; }
public string FirstMidName { get; set; }
public DateTime EnrollmentDate { get; set; }
public virtual ICollection<Enrollment> Enrollments { get; set; }
}
和上下文:
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(modelBuilder As DbModelBuilder) {
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
}
}
我的连接字符串错误吗?这是服务器未正确配置的症状吗?我在这里搞砸了吗?
解决方法:
我刚刚使用ASP.NET MVC 4,SQL SERVER 2008 Express进行了测试.一切正常.您需要在连接字符串中提供数据库名称,如果您在global.asax中使用此类型代码,EF会使用该名称自动创建具有此名称的数据库,
System.Data.Entity.Database.SetInitializer(new CreateDatabaseIfNotExists<SchoolContext>());
这是我的连接字符串,
<add name="SchoolContext" connectionString="Data Source=.\SQlEXPRESS;Initial Catalog=SchoolDatabase;Integrated Security=True;Pooling=False" providerName="System.Data.SqlClient" />
确保,
在使用之前构建应用程序.
尝试以管理员身份运行该应用程序.
您不需要最初创建SchoolContext,该向导将自动为您创建一个.
查找连接字符串的一种简单方法是使用服务器资源管理器.
标签:ef-code-first,sql-server-2008,c,asp-net-mvc 来源: https://codeday.me/bug/20191101/1986959.html