2015-07-28 65 views
0

我对此感到困惑:在ASP.Net中接收空数据集MVC

我有两组相同的代码用于从数据库中检索数据。一个返回数据,另一个不会,即使数据是预期的。 以下是返回空集的那个。在相应的表中有样本数据。

这是控制器代码:

namespace MVCPart1_5.Controllers 
    { 
     public class DepartmentController : Controller 
     { 
      // GET: Department 
      public ActionResult Index() 
      { 
       DepartmentContext oDepartmentContext = new DepartmentContext(); 
       List<Department> oDepartments = oDepartmentContext.Departments.ToList(); 

       return View(oDepartments); 
      } 
     } 
    } 

这些机型:

namespace MVCPart1_5.Models 
{ 
    [Table("Department")] 
    public class Department 
    { 
     [Key] 
     public int Code { get; set; } 
     public string Name { get; set; } 

    } 
} 


namespace MVCPart1_5.Models 
{ 
    public class DepartmentContext : DbContext 
    { 
     public DbSet<Department> Departments { set; get; } 
    } 
} 

最后的观点:

@model IEnumerable<MVCPart1_5.Models.Department> 
@using MVCPart1_5.Models; 

@{ 
    ViewBag.Title = "Index"; 
} 

<h2>Department Set</h2> 

<div style="font-family :Arial"> 
    <ul> 
     @foreach (Department department in @Model) 
     { 
      <li> 
       @Html.ActionLink(department.Name, "Details", "Employee", new { departmentCode = department.Code }) 

      </li> 
     } 
    </ul> 
</div> 

我也有在全球如下:

protected void Application_Start() 
{ 
    Database.SetInitializer<MVCPart1_5.Models.EmployeeContext>(null); 
    Database.SetInitializer<MVCPart1_5.Models.DepartmentContext>(null); 

    AreaRegistration.RegisterAllAreas(); 
    RouteConfig.RegisterRoutes(RouteTable.Routes); 
} 

}

在此先感谢您的帮助。

+1

oDepartments变量是否填充了数据? – Landeeyo

+1

试着在这一行放置一个断点:'返回View(oDepartments);',然后调试并检查'oDepartments'是否为空。 – ekad

+0

oDepartments返回一个没有项目的列表。我使用了中断点,这是我发现列表数为0的部分。 – Maryam

回答

0

如果你的oDepartments变量没有填充数据,你应该检查应用程序中的连接字符串,因为它可能是错误的(所以它连接到另一个数据库)。

因为您的DbContext类是DepartmentContext而且默认的实体框架方法是将连接字符串命名为相同的名称,您应该查找名为DepartmentContext的连接字符串。然后尝试使用该连接字符串中找到的凭证连接到数据库。我99%确定你会找到空的部门表。

请记住,即使连接到相同的数据库服务器,也可能连接到错误的数据库。

+0

谢谢! Landeeyo – Maryam