外键MVC4代码优先于c#
如何向模型添加外键(代码优先) 我有一个模型产品,它有一个ID(主键),我想像这样添加到我的模型订单中外键MVC4代码优先于c#,c#,asp.net-mvc,C#,Asp.net Mvc,如何向模型添加外键(代码优先) 我有一个模型产品,它有一个ID(主键),我想像这样添加到我的模型订单中 public class Order { public int ID {get; set;} [Required] public int Total {get; set;} [Required] public int ProductId{get; set;} } 但是如何使ProductId像外键一样引用产品模型的id呢? 在Stackoverflow上有很多相似的问题
public class Order
{
public int ID {get; set;}
[Required]
public int Total {get; set;}
[Required]
public int ProductId{get; set;}
}
但是如何使ProductId像外键一样引用产品模型的id呢?
在Stackoverflow上有很多相似的问题,但都有不同的答案,但它们不适合我。我真的希望有人有一个解决方案,或者可以为我指出正确的方向并给出解释。您需要添加导航属性:
public virtual Product Product { get; set; }
因此,Order类将如下所示:
public class Order
{
public int ID {get; set;}
[Required]
public int Total {get; set;}
[Required]
public int ProductId{get; set;}
[Required]
public virtual Product Product { get; set; }
}
public class Order
{
public int ID {get; set;}
[Required]
public int Total {get; set;}
[Required]
public int ProductId{get; set;}
[ForeignKey("ProductId")]
public virtual Product Product {get; set;}
}
另外,严格来说,一旦您拥有虚拟产品属性,就不需要
ProductId
属性。您可以这样做:
public class Order
{
public int ID {get; set;}
[Required]
public int Total {get; set;}
[Required]
public int ProductId{get; set;}
[Required]
public virtual Product Product { get; set; }
}
public class Order
{
public int ID {get; set;}
[Required]
public int Total {get; set;}
[Required]
public int ProductId{get; set;}
[ForeignKey("ProductId")]
public virtual Product Product {get; set;}
}
谢谢,我会试试的,你能解释一下为什么会有2X产品吗?这对我来说似乎很奇怪,我在其他示例中看到过,但我不明白为什么。第一个是类型(即您的
产品
型号),第二个只是物业的名称。谢谢,这是否意味着我可以将其命名为public virtual Product ForeignProduct是的,您喜欢的任何东西都可以:)没问题谢谢你的帮助,我被卡住了!晚安。