【问题标题】:ASP.net MVC Table relationshipsASP.net MVC 表关系
【发布时间】:2013-10-01 11:50:39
【问题描述】:

我是 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; }
}

问题是在运行站点时,我得到异常 invalid object name 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:         }

非常感谢任何帮助!

【问题讨论】:

    标签: c# asp.net-mvc database model relation


    【解决方案1】:

    我不是这方面的专家,但也许您的表格应该命名为“Divisions”,我认为表格名称中应采用复数形式。

    【讨论】:

      猜你喜欢
      • 2013-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多