【发布时间】:2016-06-20 05:16:04
【问题描述】:
首先请原谅,我是 ASP.NET 的新手,因为我目前正在尝试学习其中的一些内容。
我正在关注 ASP.NET MVC4 的在线教程之一,但我正在使用 Visual Studio 2015 Community (MVC5) 和 SQL Server 2014 Express。
目标是使用 Windows 身份验证从本地 SQL Server Express 数据库中检索数据。在这种情况下,员工的 ID、姓名、城市和性别。此时我收到以下错误:
EntityFramework.SqlServer.dll 中出现“System.Data.Entity.Core.EntityException”类型的异常,但未在用户代码中处理
附加信息:底层提供程序在打开时失败。
数据库如下所示 - ID 为 int,其余为 varchar(50):
Employee.cs 位于模型中:
[Table("tblEmployee")]
public class Employee
{
public int EmployeeId { get; set; }
public string Name { get; set; }
public string Gender { get; set; }
public string City { get; set; }
}
EmployeeContext.cs:
public class EmployeeContext : DbContext
{
public DbSet<Employee> Employees { get; set; }
}
EmployeeController.cs:
public class EmployeeController : Controller
{
// GET: Employee
public ActionResult Details(int id)
{
EmployeeContext employeeContext = new EmployeeContext();
Employee employee = employeeContext.Employees.Single(emp => emp.EmployeeId == id);
return View(employee);
}
}
视图 - Details.cshtml:
@model MVCDemo.Models.Employee
@{
ViewBag.Title = "Employee Details";
}
<h2>Employee Details</h2>
<table style="font-family:Arial">
<tr>
<td>
<b>Employee ID:</b>
</td>
<td>
@Model.EmployeeId
</td>
</tr>
<tr>
<td>
<b>Name:</b>
</td>
<td>
@Model.Name
</td>
</tr>
<tr>
<td>
<b>Gender:</b>
</td>
<td>
@Model.Gender
</td>
</tr>
<tr>
<td>
<b>City:</b>
</td>
<td>
@Model.City
</td>
</tr>
</table>
最后,来自web.config 的连接字符串在根(我确定)目录中:
<add name="EmployeeContext"
connectionString="Data Source=DESKTOP-6RQ94N9\MAIN;Initial Catalog=Sample;Integrated Security=SSPI"
providerName="System.Data.SqlClient" />
默认的connectionString="Data Source=.\SQLEXPRESS; 根本不起作用。
无论如何,服务器资源管理器显示与数据库的数据连接成功,我可以在 Visual Studio 中浏览表及其列。
当我启动项目并尝试例如:
http://localhost/MVCDemo/Employee/Details/1
网站只是保持加载一段时间,然后上面提到的异常发生在
Employee employee = employeeContext.Employees.Single(emp => emp.EmployeeId == id);
当我调试应用程序时,employeeContext.Employees.Local.Count 显示为 0,所以我猜没有检索到数据。
非常感谢您的帮助!
【问题讨论】:
标签: c# asp.net sql-server asp.net-mvc-5