2014-10-21 51 views
0

我如何添加一个外键模型(代码第一)外键MVC 4码的第一个C#

我有有一个ID(主键)一个型号产品,我想添加到我的模型阶喜欢。

public class Order 
{ 
public int ID {get; set;} 

[Required] 
public int Total {get; set;}  

[Required] 
public int ProductId{get; set;} 
} 

但我怎么能让ProductId引用我的产品模型的ID像外键? 在Stackoverflow有很多相似的问题,但所有与不同的答案,但他们arent为我工作。我真的希望有人有解决办法,或者可以用正确的方向指出我的解释。

回答

1

您需要添加导航属性:

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

此外,严格来说是不需要的ProductId财产一旦你有虚拟产品属性。

+0

谢谢,我会尝试一下,你能解释一下为什么会出现2 X产品?对我来说似乎很奇怪,我在其他例子中看到它,但我不明白为什么。 – 2014-10-21 22:20:20

+0

第一种是类型(即您的“产品”模型),第二种只是属性的名称。 – DavidG 2014-10-21 22:21:41

+0

谢谢,这是否意味着我可以将其命名为公共虚拟产品ForeignProduct – 2014-10-21 22:22:48

1

你可以做这样的事情:

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

}