ASP.net MVC は初めてで、これが初めての試みです。リレーショナル テーブルを使用して小さなサイトを設計しています。(簡潔にするために、無関係なフィールドをいくつか削除しました)
Items
:
Id int (PK)
description nvarchar(50)
divisionid nchar(2) FK
categoryid nchar(6) FK
Division
code nchar(2) PK
description nvarchar(50)
Category
code nchar(6) PK
description nvarchar(50)
自明だと思います。以下のモデルを作成しようとすると:
public class Item
{
[Key]
[Display(Name="Id")]
public int Id { get; set; }
[Required(ErrorMessage="Description is required")]
[Display(Name = "Description")]
[StringLength(50, ErrorMessage = "Description must not be more than 50 characters long")]
public string Description { get; set; }
[Display(Name = "Division")]
[StringLength(2)]
public string DivisionId { get; set; }
[Display(Name = "Category")]
[StringLength(6)]
[ForeignKey("DivisionId")]
public virtual Division division { get; set; }
[ForeignKey("CategoryId")]
public virtual Category Category { get; set; }
}
public class Division
{
[Key]
[Display(Name = "Code")]
[StringLength(2, ErrorMessage = "Code must be 2 char.")]
public string Code { get; set; }
[Display(Name = "Description")]
[Required(ErrorMessage = "Description is required")]
[StringLength(50,ErrorMessage="Description must not be more than 50 characters long")]
public string Description { get; set; }
public virtual ICollection<Item> Items { get; set; }
}
public class Category
{
[Key]
[Display(Name = "Code")]
[StringLength(6, ErrorMessage = "Code must be 6 char.")]
public string Code { get; set; }
[Display(Name = "Description")]
[Required(ErrorMessage = "Description is required")]
[StringLength(50, ErrorMessage = "Description must not be more than 50 characters long")]
public string Description { get; set; }
public virtual ICollection<Item> Items { get; set; }
}
問題は、サイトを実行しているときに、無効なオブジェクト名の例外がdbo.Divisions
発生し、コントローラーの戻り値を指すエラーが発生することです
Line 20: {
Line 21: var items = db.Items.Include(i => i.division).Include(i => i.Category);
Line 22: return View(items.ToList());
Line 23: }
どんな助けでも大歓迎です!