私はテーブルにCompanyとRolesが1対多の関係になっています。私は遅延ロード設定のために、RoleエンティティのFK値が会社のPK値と同期するように自動的に設定されるべきであることを知っています。 Companyテーブルでは、会社エンティティインスタンスが追加されていますが、新しいロールエンティティインスタンスを追加すると何らかの理由でnullが追加されます。私は間違って何をしていますか?ASP.net MVC:1対多の遅延読み込みでPKとFKの値が同期しない
これらは私のドメインクラスと関連している:
public class Company
{
public Company()
{
Roles = new List<Role>();
Employees = new List<Employee>();
}
public int CompanyId { get; set; }
public string Name { get; set; }
public string Address { get; set; }
public string PhoneNo { get; set; }
public string Email { get; set; }
public virtual ICollection<Role> Roles { get; set; }
public virtual ICollection<Employee> Employees { get; set; }
}
public class Role
{
public Role()
{
RoleOverviews = new List<RoleOverview>();
}
public int RoleId { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public virtual Company Company { get; set; }
public ICollection<RoleOverview> RoleOverviews { get; set; }
}
public class AppDbContext:DbContext
{
public DbSet<Company> Companies { get; set; }
public DbSet<Role> Roles { get; set; }
public DbSet<RoleOverview> RoleOverviews { get; set; }
public AppDbContext() : base("DefaultConnection")
{
}
}
public ActionResult Create([Bind(Include = "RoleId,Name,Description")] Role role)
{
if (ModelState.IsValid)
{
db.Roles.Add(role);
db.SaveChanges();
return RedirectToAction("Index", "CompaniesRolesMV");
}
return View(role);
}
「の何らかの理由でnullが追加されますか?あなたは、問題が何であるか、どこに遭遇しているのかを明確に説明していません。 – DaniDev
はい残念ですが、新しい役割を追加すると、CompanyテーブルのPK値からFK値を取得する必要がありますが、代わりにRolesテーブルにnullが返されます。私のケースのRoleテーブルでは、子テーブルに新しいエンティティを追加すると、PKとFKが同期するはずです。 –
私はその逆を考えました。 PKテーブルに新しいエントリを追加し、FKテーブルに再度追加します – Steve