我有两张桌子
State(StateID int,StateName string)
City(CityID int,StateID int,CityName string)
我正在使用代码优先方法开发 MVC4。代码,我正在使用State and City型号是-
对于州:
[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;}
这段代码正在为状态表的 StateID 创建一个外键。我想要的只是工作,但由于我是 MVC 的新手,我得到以下代码也在做同样的事情。
[ForeignKey("StateID")]
public string Stateid{get;set;}
public virtual State StateID{get;set;}
这让我对正确的做法感到困惑......我们应该传递模型类名称外键注解 i.e. State或者它应该是财产,即StateID我浏览了这里已经提出的有关此注释的各种问题。但我仍然不确定上述代码的区别。
任何建议将不胜感激。
当使用ForeignKey
属性,您传递外键应指向的导航属性的名称。
因此,在第一个示例中,您有:
[ForeignKey("State")]
public string StateID { get; set; }
public virtual State State { get; set; } // This is your navigation property
这是使用该属性的正确方法。这"State"
您传入的属性对应于导航属性名称。
在第二个示例中,您的导航属性被命名为StateID
, 这就是为什么[ForeignKey("StateID")]
也在那种情况下工作过。
看看MSDN http://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.schema.foreignkeyattribute%28v=vs.110%29.aspx文档以获取更多信息。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)