私は2つの関連テーブルを持っていて、ビューを持つ自動生成コントローラです。私は、インデックス、すべてのレコードのリストを開くには、TRUとき 私はこのエラーを取得:未処理の例外は、現在のWeb要求の実行中に発生した:何が悪いですか、System.Data.SqlClient.SqlException:無効な列名 'tbl_rules_rulID'。
説明。エラーの詳細とコード内のどこで発生したのかについては、スタックトレースを参照してください。
例外の詳細: System.Data.SqlClient.SqlException:無効な列名 'tbl_rules_rulID'です。ここで
モデルは、モデルtbl_usersです。ここ
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_rules:
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; }
}
Contollerコード:
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テーブルのコード定義を掲載してください。さらに重要なのは、完全な例外メッセージとスタックトレースを投稿することです! – Dai
ありがとうございます。 –
tbl_usersのナビゲーションプロパティは規則に従わず、ルールIDフィールドの名前はテーブル間で異なっています。手動でマップするか、EF規則に従ってデータベースを変更する必要があります。 – Crowcoder