Ich habe diese Klasse:C# Entity Framework mit virtuellem Eigentum Abfrage
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; }
}
Ich mag die Tabelle des Kontakts zu bekommen, weil diese Nachrichten sind virtuell und all verzögertes Laden Sachen,
Dieses Anruf nicht mir arbeiten und habe diesen Fehler:
The ObjectContext instance has been disposed and can no longer be used for operations that require a connection. in Reference Table
Syntax:
public ObservableCollection<Model.Message> LoadMessages()
{
using (db) {
var x = from qr in db.Messages
order by qr.Subject
select qr;
}
}
Während dies funktioniert:
public ObservableCollection<Model.Message> LoadMessages()
{
using (db)
{
var Messages = db.Messages.Include(z => z.Contacts).ToList();
return new ObservableCollection<Model.Message>(Messages);
}
}
Also habe ich die Abfragen in einem Dienst namens MessageService, Jedesmal bin mit möchte ich die DbContext verwende ich eine Funktion dafür erstellen und legte es in Verwendung (db)
Like this:
public class MessageService
{
ReadingFromData db = new ReadingFromData();
public ObservableCollection<Model.Message> LoadMessages()
{
using (db)
{
//Do something with db
}
}
}
auch kann mir jemand erklären, wie das funktioniert, und wie mit Entity Framework Abfragen korrekt
arbeitenDank
Bitte geben Sie einen Code ein, um zu zeigen, wie Sie den Kontext verwenden. Wenn die Verbindung geschlossen ist, funktioniert das verzögerte Laden nicht. – Harsh
bearbeitet den Beitrag @Harsh – Zakk