Code First
withを使用するEF 5.0
と、次のものがあります。
internal class Entities : DbContext
{
public DbSet<User> Users { get; set; }
public DbSet<Project> Projects { get; set; }
}
// User class which holds a list of 'Project' class
public class User
{
private List<Project> _projects = new List<Project>();
public int Id { get; set; }
internal List<Project> Projects
{
get { return _projects; }
set { _projects = value; }
}
}
// Project class which holds a list of 'Milestone' class
public class Project
{
private List<Milestone> _milestones = new List<Milestone>();
public int Id { get; set; }
public string Title { get; set; }
internal List<Milestone> MileStones
{
get { return _milestones; }
set { _milestones = value; }
}
}
EF はテーブルとリレーションを正しく作成しましたが (ユーザー => プロジェクト => マイルストーンに対して 1 対多)、いくつかのプロジェクトでユーザーを作成してに追加するとDbContext
、ユーザーのみが追加され、彼のプロジェクトは追加されません。 . マイルストーンを持つプロジェクトを持つユーザーの場合も同じです。私はこのようにしています:
public void AddUser(User user)
{
using (var repository = new Entities())
{
repository.Users.Add(user);
repository.SaveChanges();
}
}
私の質問は、EF
複雑なエンティティを自動的に INSERT または UPDATE する (カスケード) ことを強制する方法です。そのため、プロジェクトのリストを持つユーザーを追加し、ユーザーを USERS テーブルに挿入し、彼のプロジェクトを PROJECTS テーブルに自動的に (正しい関係で) INSERT しますか?
それは5番目のバージョンでスマートですかEF
、それとも手動で行う必要がありますか?