我试图创建一列MVC列车旅行(除其他事项),使用代码第一个实体框架,并想知道如何我可以映射外部站点的外键。 Journey
型号/表格将有一个DepartureStationID
和一个ArrivalStationID
这将是外键链接到一个表/模型,称为Station
。MVC3模型设置 - 代码优先EF
下面是这两种模式的代码:
public class Station
{
public int StationID { get; set; }
public string StationName { get; set; }
public string StationLocation { get; set; }
}
public class Journey
{
public int JourneyID { get; set; }
public int DepartureID { get; set; }
public int ArrivalID { get; set; }
public int OperatorID { get; set; }
public string JourneyCode { get; set; }
public virtual Operator Operator { get; set; }
public virtual Station DepartureStation { get; set; }
public virtual Station ArrivalStation { get; set; }
}
还有一个外键值在那里,即Operator
并已成功地映射,但出发地和目的地都没有,并返回空值在视图中:(@Html.DisplayFor(modelItem => item.DepartureStation.StationName)
。
由EF创建当我在数据库中查找,曾出现过两个附加字段:
DepartureStation_StationID
ArrivalStation_StationID
和SQL关系是电台表和上述两个领域之间的,而不是DepartureID
和ArrivalID
所以,我的问题是 - 当两个字段引用同一个表时,是否需要在模型中做一些不同的事情?我不知道为什么添加这些额外的字段,所以我认为我错误地设置了模型。
感谢
嗨宽容,非常感谢 - 这解决了我。通过添加你写的东西,再加上'.WillCascadeOnDelete(false)'的选项,它可以对初始错误和Cascade问题进行排序。优秀。 –