[英]Unable to determine the principal end of the etaxiDataModel relationship. Multiple added entities may have the same primary key
[英]Unable to determine the principal end of the 'Vehicle_VehicleClass' relationship. Multiple added entities may have the same primary key
不知道為什么從VehicleClass到Vehicle的1:N關系不起作用。 在下面的注釋代碼中嘗試了不同的映射。 我已經完成了其他1:N關系。 不知道這有什么不同。
modelBuilder.Entity<Vehicle>()
.HasRequired(x => x.VehicleClass)
.WithMany(x => x.Vehicles)
.HasForeignKey(x => x.VehicleClassId)
.WillCascadeOnDelete(false);
//modelBuilder.Entity<VehicleClass>()
// .HasMany(x => x.Vehicles)
// .WithRequired(x => x.VehicleClass)
// .HasForeignKey(x => x.VehicleClassId)
// .WillCascadeOnDelete(false);
//modelBuilder.Entity<Vehicle>()
// .HasRequired(x => x.VehicleClass)
// .WithRequiredPrincipal()
// .WillCascadeOnDelete(false);
//modelBuilder.Entity<Vehicle>()
// .HasOptional(x => x.VehicleClass)
// .WithOptionalPrincipal();
// .WillCascadeOnDelete(false);
//modelBuilder.Entity<Vehicle>()
// .HasRequired(x => x.VehicleClass)
// .WithRequiredDependent()
// .WillCascadeOnDelete(false);
//modelBuilder.Entity<Vehicle>()
// .Ignore(x => x.VehicleClass);
DomainBase.cs
public abstract class DomainBase : IEntity
{
public virtual int Id { get; set; }
public virtual bool IsDeleted { get; set; }
public virtual DateTime CreatedDate { get; set; }
public virtual int CreatedByUserId { get; set; }
public virtual DateTime? LastModifiedDate { get; set; }
public virtual int? LastModifiedByUserId { get; set; }
public virtual void ConvertDatesToGmt()
{
this.CreatedDate = this.CreatedDate.UtcToGmt();
if (this.LastModifiedDate.HasValue)
{
this.LastModifiedDate = this.LastModifiedDate.Value.UtcToGmt();
}
}
}
VehicleClass.cs
public class VehicleClass : DomainBase
{
public virtual string ClassName { get; set; }
public virtual string Make { get; set; }
public virtual string Model { get; set; }
public virtual string ModelVariant { get; set; }
public virtual string Configuration { get; set; }
public virtual string ProductionName { get; set; }
public virtual DateTime? ProductionStartDate { get; set; }
public virtual DateTime? ProductionEndDate { get; set; }
public virtual int? GrossVehicleWeightKg { get; set; }
public virtual decimal? WidthMeters { get; set; }
public virtual decimal? LengthMeters { get; set; }
public virtual decimal? HeightMeters { get; set; }
public virtual Int16? WheelbaseMm { get; set; }
public virtual Int16? PayloadRangeLowKg { get; set; }
public virtual Int16? PayloadRangeHighKg { get; set; }
public virtual bool IsHGV { get; set; }
public virtual IList<Vehicle> Vehicles { get; set; }
}
Vehicle.cs
public class Vehicle : DomainBase
{
public virtual string Registration { get; set; }
public virtual DateTime ServiceStartDate { get; set; }
public virtual DateTime? ServiceEndDate { get; set; }
public virtual string Region { get; set; }
public virtual int VehicleClassId { get; set; }
public virtual VehicleClass VehicleClass { get; set; }
public virtual IList<VehicleDefect> VehicleDefects { get; set; }
public virtual IList<VehicleInspection> VehicleInspections { get; set; }
}
fk被存儲在數據庫中的name_id。 我必須在EF配置中指定它。 誤導性錯誤消息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.