2012-10-09 16 views
0

最近我得到了一些幫助,並建立了一個名爲RegisterViewModel的視圖模型,其中包含來自(當前)兩個不同模型的字段。這工作,我可以用它來註冊一個新的用戶以及相關的用戶信息。我的問題是查看這個相同視圖模型的細節。在我的「詳細信息」方法USEE控制器我有相同的代碼 -ViewModel error

public ViewResult Details(RegisterViewModel viewModel) 
     { 
      TRSContext context = new TRSContext(); 
      User currentuser = context.Users 
       .Include(i => i.UserDetails) 
       .Where(i => i.UserName == viewModel.UserName) 
       .Single(); 

      currentuser.UserDetails = new UserDetails(); 

      return View(userRepository.Find(viewModel.UserName)); 
     } 

但我得到的錯誤 -

無法轉換lambda表達式到類型「串」,因爲它不是委託鍵入

爲線 -

(I => i.UserDetails)

任何想法這有什麼問題嗎?

回答

1

應該是.Include("UserDetails")

+0

謝謝,刪除了錯誤,但現在我得到另一個 - 序列不包含任何元素 –

+0

@MartinMcMahon這是一個不同的問題。你的調用Single將在查詢返回0結果時拋出一個異常。如果您的查詢*可以*爲空,那麼您最好返回'FirstOrDefault'。 – James

+0

謝謝。那麼我會問另一個問題:) –

1

Include拉姆達版本是在EF CTP4推出,除非你有,你需要使用一個字符串即

.Include("UserDetails")