2014-10-21 63 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;} 

}