我尝试使用实体框架将现有用户对象更新到数据库中。
我新添加了一些 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;
}
}
如何在实体框架中添加/删除/更新用户的收藏夹?正确的做法是什么?