2013-06-06 71 views
0

電子郵件我想允許用戶更新他們的電子郵件,所以我有控制器:更新用戶在果園

[HttpPost] 
public ActionResult ChangeEmail(string newEmail) { 
    IUser user = _services.WorkContext.CurrentUser; 
    if (!user.Is<UserPart>()) 
     throw new InvalidCastException(); 

    var userRecord = user.As<UserPart>().Record; 
    userRecord.Email = newEmail; 
    return null; 
} 

一切都建立並運行,除了數據庫沒有更新新的電子郵件確定。 我該怎麼辦? 謝謝大家!

回答

2

我覺得你的問題是,你要更新的記錄,而不是直接設置部分的價值,並讓果園保存更改:

user.As<UserPart>().Email = newEmail; 

你的變化將自動提交到數據庫在請求結束。

作爲一個側面說明,您的更改沒有保存的原因是,當您更新記錄時,您需要使用注入的資源庫明確更新它,例如, _userRepository.Update(user.Record)其中_userRepository是一個注入的IRepository<UserPartRecord>,但只是更新部分是要走的路。