[英]One to Many Fluent Entity Framework
每隔半小時,將收到來自移動設備的請求。 可以在設備表中驗證移動設備,然后將記錄添加到Ping表中。 使用實體Franmework將相同的表映射到DB。
誰能告訴我如何將Device.Id(主鍵)映射到Ping.IdDevice(外鍵),則使用Fluent Api可以實現一對多的關系。
public class Ping
{
public long Id { get; set; }
public long IdDevice { get; set; }
public string Request { get; set; }
public string Response { get; set; }
public int RspCode { get; set; }
public DateTime CreatedDateTime { get; set; }
}
public class Device {
public long Id { get; set; }
public string Uid { get; set; }
public Type Type { get; set; }
public Status Status { get; set; }
}
protected override void OnModelCreating(DbModelBuilder modelBuilder) {
modelBuilder.Entity<Device>().HasKey(d => d.Id);
modelBuilder.Entity<Device>().Property(d => d.Id).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);
modelBuilder.Entity<Device>().Property(d => d.Uid).HasMaxLength(8);
modelBuilder.Entity<Device>().HasRequired(d => d.Uid);
modelBuilder.Entity<Ping>().HasKey(p => p.Id);
modelBuilder.Entity<Ping>().Property(p => p.Id).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);
base.OnModelCreating(modelBuilder);
}
您可以嘗試在Ping類中為Device添加導航屬性,如下所示:
public class Ping
{
public long Id { get; set; }
public long IdDevice { get; set; }
public virtual Device Device { get; set; }//Newly added
public string Request { get; set; }
public string Response { get; set; }
public int RspCode { get; set; }
public DateTime CreatedDateTime { get; set; }
}
然后在Device類中為Ping添加導航屬性,如下所示
public class Device
{
public long Id { get; set; }
public string Uid { get; set; }
public Type Type { get; set; }
public Status Status { get; set; }
public virtual List<Ping> Pings { get; set; } //Newly added
}
最后在OnModelCreating中添加以下映射:
modelBuilder.Entity<Device>().HasMany(d => d.Pings).WithRequired(p => p.Device).HasForeignKey(p => p.IdDevice);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.