1

我尝试使用实体框架将现有用户对象更新到数据库中。

我新添加了一些 UserFavourite 项目并发送到 UpdateUser 方法。但它只保存 Id 和 Name,而不是 UserFavourites。

我的控制器代码

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 类骨架和更新方法

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;
    }
 }

如何在实体框架中添加/删除/更新用户的收藏夹?正确的做法是什么?

4

1 回答 1

0

EntityCollection<UserFavourite>需要是虚拟的。

于 2013-01-25T10:25:52.257 回答