1
我嘗試使用實體框架將現有用戶對象更新爲數據庫。使用導航屬性更新/添加/刪除EF屬性不適用於ApplyCurrentValues
我新增了一些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;
}
}
我怎麼能增加在實體框架的用戶的/刪除/更新的最愛嗎?什麼是正確的做法?