【发布时间】:2017-08-12 19:45:09
【问题描述】:
我有两个相关的表,以及自动生成的带视图的控制器。 当我打开索引,所有记录列表时出现此错误:
说明:在执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。
异常详情: System.Data.SqlClient.SqlException:列名“tbl_rules_rulID”无效。
这里是模型 tbl_rules
public class tbl_rules
{
public tbl_rules()
{
tbl_users = new HashSet<tbl_users>();
}
[Key]
[DisplayName("ID")]
public int rulID { get; set; }
[Required(ErrorMessage = "Изберете Овластување")]
[DisplayName("Овластување")]
public string Rule_Name { get; set; }
public virtual ICollection<tbl_users> tbl_users { get; set; }
}
这里是模型 tbl_users:
public class tbl_users
{
[Key]
[DisplayName("ID")]
public int uID { get; set; }
[Required(ErrorMessage = "Ве молиме внесете име на Агентот")]
[StringLength(50)]
[DisplayName("Агент")]
[MaxLength(20, ErrorMessage = "Максимален број на карактери за {0} 20")]
public string user_ime { get; set; }
[Required(ErrorMessage = "Ве молиме внесете Username")]
[StringLength(50)]
[DisplayName("Username")]
public string username { get; set; }
[Required(ErrorMessage = "Ве молиме внесете Password")]
[StringLength(50)]
[DataType(DataType.Password)]
[DisplayName("Password")]
public string Password { get; set; }
[Required(ErrorMessage = "Ве молиме внесете телефонски број")]
[StringLength(50)]
[DisplayName("Телефон")]
public string tel { get; set; }
[Required(ErrorMessage = "Ве молиме внесете Белешка.")]
[StringLength(50)]
[DisplayName("Белешка")]
public string note { get; set; }
[DisplayName("Активен?")]
public bool active { get; set; }
[DisplayName("Статус")]
public bool IsOnline { get; set; }
[DisplayName("Овластување")]
[Required(ErrorMessage = "Изберете Овластување")]
public int rullID { get; set; }
private DateTime? modified1;
public DateTime modified
{
get { return modified1 ?? DateTime.Now; }
set { modified1 = value; }
}
public virtual tbl_rules tbl_rules { get; set; }
}
控制器代码:
public ActionResult Index()
{
return View(db.tbl_users.ToList());
}
tbl_rules SQL:
CREATE TABLE [dbo].[tbl_rules] (
[rulID] INT IDENTITY (1, 1) NOT NULL,
[Rule_Name] NVARCHAR (MAX) NOT NULL,
PRIMARY KEY CLUSTERED ([rulID] ASC)
);
tbl_users SQL:
CREATE TABLE [dbo].[tbl_users] (
[uID] INT IDENTITY (1, 1) NOT NULL,
[user_ime] NVARCHAR (50) NOT NULL,
[username] NVARCHAR (50) NOT NULL,
[Password] NVARCHAR (50) NOT NULL,
[tel] NVARCHAR (50) NOT NULL,
[note] NVARCHAR (50) NOT NULL,
[active] BIT NOT NULL,
[rullID] INT NOT NULL,
[modified] DATETIME DEFAULT (getdate()) NOT NULL,
[IsOnline] BIT NOT NULL,
PRIMARY KEY CLUSTERED ([uID] ASC),
CONSTRAINT [UserName] UNIQUE NONCLUSTERED ([username] ASC),
CONSTRAINT [ZaRules] FOREIGN KEY ([rullID]) REFERENCES [dbo].[tbl_rules] ([rulID])
);
这里有什么问题?
【问题讨论】:
-
不要发布你的代码截图。发布 SQL 表的代码定义。更重要的是:发布完整的异常消息和堆栈跟踪!
-
谢谢,更新
-
tbl_users 中的导航属性不遵循约定,规则 id 字段在表之间命名不同。您必须手动映射它或更改数据库以遵循 EF 约定。
标签: c# entity-framework asp.net-mvc-4