我尝试使用Entity Framework将现有用户对象更新为数据库。
我新添加了一些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;
}
}
如何在实体框架中添加/删除/更新用户的收藏夹?什么是正确的做法?
答案 0 :(得分:0)
EntityCollection<UserFavourite>
需要是虚拟的。