[英]Entity Framework Code First - Reference same table
我仍然从Entity Framework Code First开始。 我希望能够在创建新资源时从列表中选择资源。 如何使用资源模型引用资源。
public class Resource
{
public int ResourceId { get; set; }
[Required]
[DataType(DataType.EmailAddress)]
[EmailAddress]
public string EmailAddress { get; set; }
[Required]
public string Password { get; set; }
public string FullName { get; set; }
public int TimeManagerId { get; set; }
public int TravelManagerId { get; set; }
public int OvertimeManagerId { get; set; }
public int AbsenceManagerId { get; set; }
public virtual Resource TimeManager { get; set; }
public virtual Resource TravelManager { get; set; }
public virtual Resource OvertimeManager { get; set; }
public virtual Resource AbsenceManager { get; set; }
}
我觉得你很亲密! 如果要按惯例执行此操作,可以将模型中的外键更改为[导航属性名称] [主要主键属性名称]的形式。 具体来说,将Id
更改为ResourceId
以便它匹配您正在引用的表的主要内容(恰好是它本身)...
public int TimeManagerResourceId { get; set; }
public int TravelManagerResourceId { get; set; }
public int OvertimeManagerResourceId { get; set; }
public int AbsenceManagerResourceId { get; set; }
由于您刚开始使用EF代码,我建议您安装Entity Framework Power Tools。 您将能够右键单击包含DbContext的.cs文件,它将生成映射的只读图。
尝试使用当前模型...右键单击图中的实体并查看表映射。 你会看到EF无法找出你的外键并为你创造了4个。 完成上述更改后,再次生成图表并查看差异。
编辑:代码第一次约定的文档... http://msdn.microsoft.com/en-us/data/jj679962.aspx
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.