数据库问题-执行命令定义时发生错误.有关详细信息,请参阅内部异常
本文关键字:详细信息 请参阅 异常 内部 错误 执行 问题 命令 定义 数据库 | 更新日期: 2023-09-27 17:53:49
尝试从我的数据库中填充列表,如下所示,这是控制器:
namespace TimetableSystem.Controllers
{
public class AvailabilityController : Controller
{
TimetableSystemEntities systemDB = new TimetableSystemEntities();
public ActionResult Index()
{
var parkList = new List<String>();
var parkQry = from p in systemDB.Parks
orderby p.ParkID
select p.ParkName;
parkList.AddRange(parkQry);
ViewBag.Park = parkList;
这里是公园模型:
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;
namespace TimetableSystem.Models
{
public class ParkModel
{
[Key]
public int ParkID { get; set; }
public string ParkName { get; set; }
}
}
下面是timeablesystementities模型:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.Entity;
namespace TimetableSystem.Models
{
public class TimetableSystemEntities : DbContext
{
public TimetableSystemEntities() : base("DefaultConnection") { }
public DbSet<Department> Departments { get; set; }
public DbSet<Module> Modules { get; set; }
public DbSet<Request> Requests { get; set; }
public DbSet<Round> Rounds { get; set; }
public DbSet<User> Users { get; set; }
public DbSet<ParkModel> Parks { get; set; }
public DbSet<BuildingModel> Buildings { get; set; }
public DbSet<RoomModel> Rooms { get; set; }
}
}
但是当我调试并移动到可用性页面时,我得到了这个错误:
[System.Data.SqlClient.SqlException]{"无效的对象名称'dbo.ParkModels'。"}
不知道这里发生了什么,因为我在项目或数据库的任何地方都找不到'ParkModels',模型是ParkModel,数据库表是Park。
我对代码优先的理解是,按照约定,模型名和表名需要匹配。在你的情况下,他们没有,所以你需要指定映射。
[Table("Park")]
public class ParkModel
{
[Key]
public int ParkID { get; set; }
public string ParkName { get; set; }
}
那么你的上下文应该是:
DbSet<ParkModel> Parks { get; set; }