我有這個類:c。與虛擬財產查詢#實體框架
public class Message
{
public Message()
{
Contacts = new List<Contact>();
}
public Message(string Sub_Message, string Body_Message, string Date_Send_Message)
{
Contacts = new List<Contact>();
Subject = Sub_Message;
Body = Body_Message;
Date = Date_Send_Message;
}
public int MessageId { get; set; }
public string Subject { get; set; }
public string Date { get; set; }
public string Body { get; set; }
public virtual IList<Contact> Contacts { get; set; }
}
我想因爲這個消息是虛擬的,所有的延遲加載的東西來獲得聯繫的表,
這呼叫沒有工作對我得到這個錯誤:
The ObjectContext instance has been disposed and can no longer be used for operations that require a connection. in Reference Table
語法:
public ObservableCollection<Model.Message> LoadMessages()
{
using (db) {
var x = from qr in db.Messages
order by qr.Subject
select qr;
}
}
雖然這個工程:
public ObservableCollection<Model.Message> LoadMessages()
{
using (db)
{
var Messages = db.Messages.Include(z => z.Contacts).ToList();
return new ObservableCollection<Model.Message>(Messages);
}
}
所以我使用的查詢一個叫MessageService服務中,每次我想使用的DbContext我爲它創建一個函數,並把它內部使用(DB)
像這樣:
public class MessageService
{
ReadingFromData db = new ReadingFromData();
public ObservableCollection<Model.Message> LoadMessages()
{
using (db)
{
//Do something with db
}
}
}
此外,有人可以給我解釋一下這是如何工作的,以及如何與實體框架查詢正確
工作感謝
請提供一些代碼,以顯示您如何使用上下文。如果連接關閉,延遲加載將不起作用。 – Harsh
編輯帖子@Harsh – Zakk