我有这个类: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