Я новичок в asp.net C # и пытаюсь учиться, создав простое веб-приложение на основе приложения MVC 3 Music. До сих пор у меня была приличная пробежка, но я сталкиваюсь с этим и не могу понять причину. Пожалуйста, помогите
Я создаю простой веб-сайт, на котором перечислены проекты, затем нажимая на проекты, вы видите все таблицы, а затем нажимая на таблицу, вы видите все столбцы. Проекты / таблицы / столбцы извлекаются из базы данных SQL, в которой определены допустимые данные и ключи PK / FK. Я могу переходить от проектов к таблицам и видеть все столбцы в таблицах, но когда я нажимаю на ссылку столбца, я получаю сообщение об ошибке, как описано ниже.
ОШИБКА: "Неверное имя столбца 'Tables_Id'." Профилировщик SQL показывает этот столбец в запросе, но я не понимаю, откуда он, поскольку у меня нет такого столбца.
КЛАСС КОНТРОЛЛЕРА
public class ProjectController : Controller // Inherit from base class Controller
{
DbEntities storeDB = new DbEntities(); //Create Object/instance of class //StorDB is reference to an object
public ActionResult Index()
{
var Name = storeDB.ProjectNM.ToList(); //Use 'var' coz we may have any type returned, 'var' is determined at run time
return View(Name);
}
public ActionResult BrowseTables(string Projects)
{
var ProjectModel = storeDB.ProjectNM.Include ("Tabless")
.Single(g => g.Name == Projects);
return View(ProjectModel);
}
public ActionResult BrowseColumns(string TableIs)
{
var ProjectModel1 = storeDB.TableNM.Include("Columnss")
.Single(g => g.Tbl_Name == TableIs);
return View(ProjectModel1);
//var ColumnModel = storeDB.TableNM.Find(TableIs);
// return View(ColumnModel);
}
}
Другие классы
public partial class Projects //Partial class, see comment below
{
public int Id { get; set; }
public string Name { get; set; }
public List<Tables> Tabless { get; set; } //Navigation Property, required so that we can include tables under projects
}
public class Tables
{
public int Id { get; set; }
public int ProjectId { get; set; }
public string Tbl_Name { get; set; }
public Projects Project { get; set; } //Class table can have (belong) only one project
public List<Columns> Columnss { get; set; } //Table can have more than one column
}
public class Columns
{
public int Id { get; set; }
[ForeignKey("Tables")]
public int TblId { get; set; }
public string Column_Name { get; set; }
public string IncludeFlag { get; set; }
}
Просмотр
<ul>
@foreach (var Tables in Model.Tabless)
{
<li>
@Html.ActionLink(Tables.Tbl_Name, "BrowseColumns", new { TableIs = Tables.Tbl_Name })
</li>
}
Запрос из профилировщика SQL
[Project2].[Tables_Id] AS [Tables_Id]
Как видите, в запросе есть столбец [Tables_Id], и я не понимаю, почему он существует, поскольку у меня нет такого столбца. Пожалуйста, помогите!