Entity Framework を使用して、既存のユーザー オブジェクトを DB に更新しようとしました。
UserFavourite アイテムをいくつか追加し、UpdateUser メソッドに送信しました。ただし、ユーザーのお気に入りではなく、ID と名前のみが保存されます。
私のコントローラーコード
List<UserFavourite> submittedFavouriteCollection=//prepared from view
User existingDBUser = AdminService.SelectUserById(int Id);
foreach (UserFavourite fav in submittedFavouriteCollection)
{
fav.Modified = currentTime;
fav.Modifier = modifier;
existingDBUser.UserFavourites.Add(fav);
}
AdminService.UpdateUser(existingDBUser);
EF クラスのスケルトンと Update メソッド
public class User{
public int Id{get;set;}
public string Name{get;set;}
public EntityCollection<UserFavourite> UserFavourites{get;set;}
//other EF properties
}
public User UpdateUser(User userToSave)
{
using (MyContext entities = new MyContext(GetSqlConnectionString()))
{
var usr = from rd in entities.Users
where rd.Id == userToSave.Id
select rd;
userToSave.Modified = DateTime.Now;
entities.Users.ApplyCurrentValues(userToSave);
entities.SaveChanges();
return userToSave;
}
}
Entity Frameworkでユーザーのお気に入りを追加/削除/更新するにはどうすればよいですか? 正しい方法は何ですか?