这是我见过的最烦人的问题。
我有一个带有 5 个不同列的 Cars 表。还有一个部门表。这是我的课:
[Table("Cars")]
public class Cars
{
[Key] public int ID { get; set; }
public int Year { get; set; }
public int Department_id { get; set; }
public string Manufactor { get; set; }
public string Name { get; set; }
}
[Table("Department")]
public class Department
{
public int id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public List<Cars> CarList { get; set; }
}
public class CarsContext : DbContext
{
public DbSet<Cars> CarSets { get; set; }
public DbSet<Department> DepartmentSets { get; set; }
}
这是我的控制器:
public class CarsController : Controller
{
//
// GET: /Cars/
public ActionResult index(int? id)
{
CarsContext _CarsContext = new CarsContext();
List<Cars> C = _CarsContext.CarSets.Where(Car => Car.Department_id == id).ToList();
return View(C);
}
}
我的索引视图
@model IEnumerable<ASPDemo1.Models.Cars>
@using ASPDemo1.Models;
@{
ViewBag.Title = "All Available Cars";
}
<div style="font-family:Arial">
<h2>All Available Cars</h2>
<ul>
@foreach (var C in Model)
{
<li>
@Html.ActionLink(C.Name + " - " + C.Year, "Details", new { id = C.ID })
</li>
}
</ul>
</div>
由于谁知道什么原因,我从中得到了一个内在的例外。当我从班级中删除 Department_id 代码时,这非常有效。但是,如果我定义了一个 Department_id,它会引发一个内部异常,说明“无效的列名“Department_id1””。我不知道为什么,但它会在列名中添加 1,所以它当然是无效的。这是视觉工作室中的错误吗?