use*_*852 3 annotations foreign-keys asp.net-mvc-4
我有两张桌子
State(StateID int,StateName string)
City(CityID int,StateID int,CityName string)
Run Code Online (Sandbox Code Playgroud)
我正在使用代码第一种方法开发MVC4.我用于州和城市模型的代码是 -
对于州:
[Key]
public int StateID{get;set;}
public string StateName{get;set;}
Run Code Online (Sandbox Code Playgroud)
对于城市:
[Key]
public int CityID{get;set;}
[ForeignKey("State")]
public string StateID{get;set;}
public virtual State State{get;set;}
Run Code Online (Sandbox Code Playgroud)
这段代码正在为状态表的StateID创建一个外键.我想要的只是工作,但由于我是MVC的新手,我得到以下代码也做同样的事情.
[ForeignKey("StateID")]
public string Stateid{get;set;}
public virtual State StateID{get;set;}
Run Code Online (Sandbox Code Playgroud)
这让我很难搞清楚做什么的正确方法...我们应该在ForeignKey Annotation中传递Model Class名称,即状态或它应该是属性,即StateID 我经历过有关此Annotation的各种问题.但我仍然不确定上述代码的区别.任何建议将不胜感激.
使用该ForeignKey属性时,您传递外键应指向的导航属性的名称.
所以,在你的第一个例子中,你有:
[ForeignKey("State")]
public string StateID { get; set; }
public virtual State State { get; set; } // This is your navigation property
Run Code Online (Sandbox Code Playgroud)
这是使用该属性的正确方法.在"State"您传递到属性对应于导航属性名称.
在第二个示例中,您的导航属性已命名StateID,这[ForeignKey("StateID")]也是该实例中的原因.
有关更多信息,请查看MSDN文档.
| 归档时间: |
|
| 查看次数: |
7026 次 |
| 最近记录: |