1

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でユーザーのお気に入りを追加/削除/更新するにはどうすればよいですか? 正しい方法は何ですか?

4

1 に答える 1

0

EntityCollection<UserFavourite>仮想である必要があります。

于 2013-01-25T10:25:52.257 に答える