Wie gebe ich ein IQueryable von Linq to SQL-Abfrage, wenn der dbContext wird mit einer 'mit' - block?

Ich habe die Kodierung mit 'using' - Blöcke zu, aber ich Frage mich, ob ich zurückkehren kann, ein IQueryable aus den folgenden, ohne das Objekt wird entsorgt, bevor ich darauf zugreifen.

public IQueryable<Contact> GetContacts(string clientID)
{
    using (dbDataContext db = new dbDataContext())
    {
        var contacts = from _contacts in db.Contacts
                        where _contacts.ClientID == clientID
                        orderby _contacts.LastName ascending
                        select _contacts;

        return contacts;
    }
}

Kann ich entfernen Sie einfach den 'über' - block und lassen .Net-verwalten der Objekte, oder kann ich Linq, um die Abfrage auszuführen früh-und Rückgabe der besiedelten Objekt.

  • beachten Sie, dass es nicht wirklich notwendig ist, explizit über den datacontext. gute Frage aber trotzdem.
  • äh, ja, ist es. Jede Einweg-Objekt sollte angenommen werden verlangen zur Verfügung, und sollte angemessen behandelt werden, IMO. Es kann halten Sie eine offene Verbindung, wie zum Beispiel...
  • Ich werde einfach auf das, was ich gelesen habe auf mehreren blogs, und auch so ziemlich alle Beispiele von ScottGu und die Linq-team. Die offizielle microsoft-position, soweit ich entnehmen kann, ist, dass Sie darüber verfügen kann, wenn es macht Sie sich besser fühlen, aber es ist wirklich nicht nötig. Siehe leedumond.com/blog/about-disposing-the-datacontext als ein Beispiel für einige Diskussion zu entsorgen und die zeitlich verzögert die Ausführung beschriebene problem in dieser Frage.
  • Scott Guthrie: "Das Datacontext-Objekt tatsächlich nicht offen halten, alle verbindungen zu der Datenbank - so dass Sie nicht haben, um ausdrücklich entsorgen Sie es. Stattdessen ruft es neue verbindungen aus dem Verbindungspool nur, wenn es Sie braucht, und dann gibt Sie zurück, sobald es fertig ist." Sie können nicht wirklich bekommen, es auf irgendeine höhere Autorität als die.
  • Für jedermann, das schaut, hier ein aktualisierter link für den Artikel @fearofawhackplanet geschrieben: web.archive.org/web/20130702164240/http://leedumond.com/blog/...
InformationsquelleAutor polom1nt | 2010-09-15
Schreibe einen Kommentar