我試圖創建一列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問題進行排序。優秀。 –