[asp.net-mvc]从 MVC 模型添加外键时出错

发布时间: 2016/10/9 5:56:54
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

下面是我的模型

  [Table("Stationery")]
public class Stationery
{
    [Key]
    public int ID { get; set; }
    public string Name { get; set; }
}

[Table("Orders")]
public class Order
{
    [Key]
    public int CustomerID { get; set; }
    [ForeignKey("Stationery")]
    public int ID { get; set; }
    public int Quantity { get; set; }
}

向订单添加控制器我得到下列错误...

说︰

无法检索元数据为 Models.Order。外键属性在类型上的属性 'ID' 'Models.Order' 是无效的。对依赖类型 'Models.Order' 找不到导航属性文具。名称值应该是一个有效的导航属性名称。

请帮助!!

谢谢。

解决方法 1:

创建您的模型,这样可以添加关系,你都不知道的关系,这将工作是否其一对一关系︰

[Table("Stationery")]
public class Stationery
{
    [Key]
    public int ID { get; set; }
    public string Name { get; set; }
    public Order Order {get;set;}
}

[Table("Orders")]
public class Order
{
    [Key]
    public int CustomerID { get; set; }
    [ForeignKey("Stationery")]
    public int ID { get; set; }
    public int Quantity { get; set; }
    public virtual Stationery Stationery { get; set; }
}

如果关系是一对很多人,这样做︰

[Table("Stationery")]
public class Stationery
{
    [Key]
    public int ID { get; set; }
    public string Name { get; set; }
    public ICollection<Order> Orders {get;set;}
}

[Table("Orders")]
public class Order
{
    [Key]
    public int CustomerID { get; set; }
    [ForeignKey("Stationery")]
    public int ID { get; set; }
    public int Quantity { get; set; }
    public virtual Stationery Stationery { get; set; }
}
赞助商