更新/添加/删除具有导航属性的 EF 不适用于应用当前值



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

我新添加了一些用户收藏的项目并发送到更新用户方法。但它只保存 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 类框架和更新方法

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

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

EntityCollection<UserFavourite>必须是虚拟的。

相关内容

  • 没有找到相关文章

最新更新