中使用下劃線創建的外鍵名稱我已閱讀並理解該約定。我遵循約定,並且在大多數情況下,數據庫中的外鍵的sql列名是'ForeignKeyEntityId'。不幸的是,這並不總是一致的,我得到ForeignKeyEntity_Id作爲sql列名。爲什麼在EF
public class Step : BaseModel
{
private ObservableCollection<StepRecord> _stepRecords;
public Step()
{
_stepRecords = new ObservableCollection<StepRecord>();
}
public int Id { get; set; }
public DateTime? StartTime { get; set; }
public DateTime? EndTime { get; set; }
public int? PassStatusTypeId;
public virtual PassStatusType PassStatusType
public int? SaveStatusTypeId;
public virtual SaveStatusType SaveStatusType
public int? StepTypeId;
public virtual StepType StepType { get; set; }
public virtual ObservableCollection<StepRecord> StepRecords { get; set; }
}
該類中的所有引用都使用ForeignKeyEntity_Id模式命名。這不是我所期待的。
我也試過,以及(刪除公共領域)具有相同的結果。這可能只是EF異常,但也可能意味着我將無法使用。包括加載參考 - 這是我測試過的結果。此外,我還沒有能夠明確地設置密鑰並將其保存到數據庫中,如PassStatusTypeId = 4 – MDA
@MikeAgee:當您將'PassStatusTypeId' * *定義爲屬性*時,您是否同時擁有* PassStatusTypeId和數據庫中的PassStatusType_Id列?還是隻有其中一個? – Slauma
只有PassStatusType_Id。我真的開始認爲EF在分解這個課程時已經失去了方向。我創建了另一個外鍵關係,以便做一個小小的班級Mike。使用名爲MikeId的屬性,它也會在數據庫中創建一個名爲Mike_Id的列。 – MDA