2014-02-13 154 views
3

我有兩個表外鍵詮釋MVC

State(StateID int,StateName string) 

City(CityID int,StateID int,CityName string) 

我對MVC4正與代碼首先approach.The代碼,我使用國家模型 -

對於國家:

[Key] 

public int StateID{get;set;} 

public string StateName{get;set;} 

城市:

[Key] 
public int CityID{get;set;} 


[ForeignKey("State")] 
public string StateID{get;set;} 
public virtual State State{get;set;} 

此代碼創建國家Table.All的STATEID一個ForeignKey我想工作,但正如我在MVC是新的我得到了下面的代碼也在做同樣的事情。

[ForeignKey("StateID")] 
public string Stateid{get;set;} 
public virtual State StateID{get;set;} 

這讓我迷惑律什麼是做正確的方式。我們應該在ForeignKey的註釋通過模型類的名字國家或者它應該是物業即STATEID 我去通過已經在這裏提出的關於這個註釋的各種問題。但是我仍然不確定上述代碼的區別。 任何建議,將不勝感激。

回答

7

使用ForeignKey屬性時,將傳遞外鍵應該指向的導航屬性的名稱。

所以,在你的第一個例子中,你有:

[ForeignKey("State")] 
public string StateID { get; set; } 

public virtual State State { get; set; } // This is your navigation property 

這是使用屬性的正確方法。您傳遞給該屬性的"State"對應於導航屬性名稱。

在第二個示例中,您的導航屬性被命名爲​​,這就是爲什麼[ForeignKey("StateID")]也在該實例中工作的原因。

查看MSDN文檔以獲取更多信息。