中使用下划线创建的外键名称我已阅读并理解该约定。我遵循约定,并且在大多数情况下,数据库中的外键的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