代碼:爲什麼我的導航屬性在Entity Framework 4中爲空?
public ChatMessage[] GetAllMessages(int chatRoomId)
{
using (ChatModelContainer context = new ChatModelContainer(CS))
{
//var temp = context.ChatMessages.ToArray();
ChatRoom cr = context.ChatRooms.FirstOrDefault(c => c.Id == chatRoomId);
if (cr == null) return null;
return cr.ChatMessages.ToArray();
}
}
問題:
的方法(WCF服務的一部分)返回一個空數組。如果我取消對註釋行的註釋,它會按預期開始工作。我試過轉動懶加載,但它沒有幫助。
此外,當它工作時,我得到ChatMessages與ChatRoom填充引用,但不是ChatParticipant。它們都由具有Id和導航屬性的架構中的ChatMessage實體引用。已設置ID並指向正確的實體,但在客戶端只有ChatRoom參考已填充。
相關的問題:
- 是一個數組返回EF-實體集合這樣的首選方法?
- 在我的模型(edmx)中進行更改時,在運行context.CreateDatabase()之前,需要運行「從模型生成數據庫...」選項。爲什麼?我收到了一些指向舊SSDL的錯誤消息,但我無法找到SSDL的存儲位置。這是當我運行這個「生成數據庫...」 - 選項創建的?
- 將整個實體圖返回給客戶端是否安全?我已閱讀了一些關於「循環參考豁免」的內容,但這是EF4中修復的嗎?
- 如何以及何時在EF4中填入參考?如果我打開懶惰加載,我懷疑只有我觸摸的實體被填充?但是在關閉延遲加載的情況下,應該始終填充整個圖表嗎?
- 在EF4中使用自更新實體而不是普通實體有什麼缺點?我現在不需要自我更新,但我可能會稍後再做。我可以輕鬆升級,還是應該從一開始就自行更新?
- 爲什麼不能使用帶有字符串類型的實體鍵?
我猜每個「相關問題「足以成爲一個單獨的問題。 – 2010-10-10 17:40:43
您使用POCO或EntityObjects嗎? – 2010-10-10 17:42:11
即時通訊使用自我更新的實體對象 – 2010-10-10 20:01:38