EF6种子数据填充时Tour实体GuideID与DriverID为null问题求助
EF6种子数据填充时Tour实体的GuideID和DriverID始终为null的问题
我正在使用Entity Framework 6,执行种子数据填充操作时,Tour实体的GuideID和DriverID始终返回null。Tour实体关联了两个同类型的Employee实体(分别作为Guide和Driver),而且必须通过Fluent API显式设置GuideID和DriverID的索引为非唯一,否则无法正常完成数据迁移。
数据库结构中Tour表包含GuideID、DriverID外键字段,分别关联Employee表的主键。
种子数据代码
public static void SeedTour(ModelBuilder modelBuilder) { modelBuilder.Entity<Tour>().HasData( new Tour() { ID = 1, VehicleID = 1, Type = "Kara", Name = "Jeep Safari Turu", GuideID = 4, DriverID = 3, Price = 100, CreatedDate = DateTime.Now, Status = Entity.Enums.Status.Created, Description = "Antalya'nın doğal güzelliklerini keşfetmek için harika bir tur" }, new Tour() { ID = 2, VehicleID = 2, Type = "Köylü", Name = "Köy Turu", GuideID = 4, DriverID = 3, Price = 250, CreatedDate = DateTime.Now, Status = Entity.Enums.Status.Created, Description = "Antalya'nın doğal güzelliklerini keşfetmek için çok kötü bir tur" }, new Tour() { ID = 3, VehicleID = 3, Type = "Deniz", Name = "Yat Turu", GuideID = 4, DriverID = 3, Price = 500, CreatedDate = DateTime.Now, Status = Entity.Enums.Status.Created, Description = "Antalya'nın denzilerini keşfetmek için harika bir tur" } ); }
Tour实体代码
public class Tour : BaseEntity { public string Name { get; set; } public string Description { get; set; } public string Type { get; set; } public int Price { get; set; } //Relational Properties public int? VehicleID { get; set; } public Vehicle? Vehicle { get; set; } public int? GuideID { get; set; } public Employee? Guide { get; set; } public int? DriverID { get; set; } public Employee? Driver { get; set; } public virtual ICollection<Ticket>? Tickets { get; set; } }
必须的Fluent API配置(否则无法完成迁移)
builder.Entity<Tour>() .HasIndex(u => u.DriverID) .IsUnique(false); builder.Entity<Tour>() .HasIndex(u => u.GuideID) .IsUnique(false);
已尝试过多种注解方式,但均未解决问题,恳请帮忙。
内容的提问来源于stack exchange,提问作者Fettah Basdemir
相关产品推荐
相关产品推荐

