以下是我的模型。我有車輛和駕駛員的一對一映射。我將首先創建車輛,然後將駕駛員映射到車輛。使用Fluent API的EF外鍵
public class Driver
{
public int Id { get; set; }
public String Name { get; set; }
public int VehicleId { get; set; }
public virtual Vehicle Vehicle { get; set; }
}
public class Vehicle
{
public int Id { get; set; }
public String Name { get; set; }
public virtual Driver Driver { get; set; }
public int VehicleGroupId { get; set; }
public virtual VehicleGroup Vehicles { get; set; }
}
我想使用Driver類中的VehicleId屬性來保持駕駛員駕駛的車輛的id。
我已經寫了下面流利的API代碼:
modelBuilder.Entity<Vehicle>()
.HasRequired(d => d.Driver)
.WithRequiredPrincipal();
但它會在驅動程序表中的新列 - Vehicle_VehicleId並將其映射到車輛上表中VehicleId。我需要Driver表的VehicleId來映射。
此外,我是全新的EF和Fluent API。我發現在WithRequiredDependent和WithRequiredPrincipal之間進行選擇非常困難。如果你能用簡單的話來形容它,會很高興。謝謝。
你可以把家屬和校長實體框架的問你:「如果你想插入這些表的記錄,我應該在哪裏插入記錄,表A或表B?如果選擇表A作爲主體,則表B將包含表A的外鍵.Fluent API具有優秀的c#文檔,您應該仔細閱讀「WithRequiredDependent」和「WithRequiredPrincipal」的描述。 – Moeri