2011-05-29 114 views
0

問題有作者。 當添加一個新問題時,我使用getCurrentUser()從數據庫中提取作者;實體框架導航屬性與數據庫對象

Question q=new Question(); 
q.Author=getCurrentUser(); 
context.Questions.Add(q); 

這生成只有當屬性的當前值爲null時才能設置EntityKey屬性。因爲作者已經有了Id的值。我應該如何指定作者已經在數據庫中?

+0

你的'getCurrentUser'使用了它自己的對象上下文的實例嗎? – 2011-05-29 11:05:54

+0

您正在使用斷開連接數據還是將您的實體連接到對象上下文?他們是標準實體還是您使用自我跟蹤實體?需要更多的信息來回答這個問題,因爲它可能是很多事情。 – 2011-05-29 11:25:13

+0

getCurrentUser是一個靜態方法。它使用當前會話(其中存儲用戶的ID)來獲取與該用戶關聯的對象。 – Ryan 2011-05-29 11:45:10

回答

0

如果您希望使用這個簡單的代碼,您必須使用相同的上下文實例來添加問題並加載用戶。如果你要使用兩個背景情況下,你必須修改代碼:

Question q=new Question(); 
User u = getCurrentUser(); 
context.Users.Attach(u); 
q.Author = u; 
context.Questions.Add(q); 

在某些情況下,可能還需要在getCurrentUser方法從上下文中分離用戶。