我基本上有三张带 FK 的桌子
制作
- MakeId
- 品牌名称
模型
- 型号 ID
- 型号名称
- 制造商 (FK)
车辆
- 车辆编号
- 购买日期
- 型号 ID (FK)
我想要一个从 Vehicle 到 Make 的导航属性而不修改我的数据库
我试过了:
public class Make
{
public int MakeId {get;set;}
<snip>...</snip>
public virtual Vehicle Vehicles {get;set;}
}
<snip>Model</snip>
public class Vehicle
{
public int VehicleId {get;set}
<snip>...</snip>
public virtual Make VehicleMake {get;set;}
}
public class VehicleMap : EntityTypeConfiguration<Vehicle>
{
public VehicleMap()
{
this.HasKey(t => t.VehicleId);
<snip>...</snip>
this.HasRequired(t => t.VehicleMake)
.WithMany(t => t.Vehicles)
.HasForeignKey(t => t.Model.MakeId);
}
}
但是,当我这样做时,我收到了一个异常:
属性表达式 'd => d.Model.MakeId' 无效。该表达式应表示一个属性:C#: 't => t.MyProperty' VB.Net: 'Function(t) t.MyProperty'。指定多个属性时使用匿名类型:C#: 't => new { t.MyProperty1, t.MyProperty2 }' VB.Net: 'Function(t) New From { t.MyProperty1, t.MyProperty2 }'。
如何在我的 Make & Vehicle 表上创建导航属性而不将 Vehicle.ModelId 列添加到我的数据库?