我尝试使用实体框架将现有用户对象更新到数据库中。
我新添加了一些用户收藏的项目并发送到更新用户方法。但它只保存 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>
必须是虚拟的。