私は、ユーザーが多くのプロジェクトとプロジェクトを持つことができますので、私のUserエンティティは、子ナビゲーションプロパティ「プロジェクト」があり割り当てるユーザーID
asp.net core
asp.net core identity
entity framework core
を使用していますエンティティは1人のユーザナビゲーションプロパティを持っています
public class Project
{
public int Id { get; set; }
public string Name { get; set; }
public User User { get; set; }
}
私もUser.Id.への外部キーである列のユーザーIDが作成されたプロジェクトのSQLテーブルで、その後の移行と私のデータベースを更新
これは、慣例によってすべて自動的に起こります。
しかし、私はちょうど例外を取得関連のuserId
context.Projects.Add(project);
project.User.Id = userId; // User is null here
await context.SaveChangesAsync();
で新しいプロジェクトを保存します。私はまた書くことができます:
project.User = new User{ Id = userId };
await context.SaveChangesAsync();
ユーザー全体を再度取得せずにそのユーザーIDだけでそのプロジェクトエンティティを保存するにはどうすればいいですか?
P.S.プロジェクトエンティティで追加のUserIdプロパティを作成すると、名前が 'UserId1'のSQLテーブルに別のUserId列が作成されます。
UPDATE
public class Project
{
public int Id { get; set; }
public string Name { get; set; }
public User User { get; set; }
}
modelBuilder.Entity<Project>().HasOne(x => x.User).WithMany(p => p.Projects).IsRequired();
*例外があります*例外は何ですか? – DavidG