Frage

Ich versuche, eine ASP.net Dropdownlist der Ergebnisse einer Entity Framework-Abfrage zu binden, während sie noch mehrstufigen Trennung beibehalten wird. (D. H Ich möchte nicht meine UI-Code-Abfrage Details enthalten, noch meine Data Layer Code UI Abhängigkeiten haben) Mein Code-behind in dem Ereignishandler Page Load sieht wie folgt aus:

        IEnumerable<Lookup> TypesLookup = Business.DocumentBO.GetDocumentTypes(_LookupTypeID);
        DocTypeDropDownList.DataSource = TypesLookup;
        DocTypeDropDownList.DataTextField = "Description";
        DocTypeDropDownList.DataValueField = "LookupID";
        DocTypeDropDownList.DataBind();

Während meine Daten Code sieht wie folgt aus (es gibt eine Zwischen Business-Schicht als gut, aber es gibt keine Bearbeitung dort noch - nur einen Pass-Through.):

    public static IEnumerable<Lookup> GetLookups(int LookupTypeID)
    {
        using (VLFDocumentEntities context = new VLFDocumentEntities())
        {
            IEnumerable<Lookup> l = (from c in context.Lookup
                        where c.LookupTypeID == LookupTypeID
                        select c);

            return l;
        }
    }

Als ich in die DocTypeDropDownList.DataBind () erhalten ;, es wirft einen ObjectDisposedException mit der Meldung "DocTypeDropDownList.DataBind ();". Kann mir jemand raten auf dem besten Weg, dies zu bewältigen?

Danke,   Andy

War es hilfreich?

Lösung

Sie nicht, müssen Sie die Objekte aus dem Kontext lösen? Z. B:

IEnumerable<Lookup> l = (from c in context.Lookup
                        where c.LookupTypeID == LookupTypeID
                        select c);
foreach (Lookup lookup in l)
  context.Detach(lookup);
return l;

Andere Tipps

Warum Sie nicht nur verwenden, um eine Liste <>?

public static List<Lookup> GetLookups(int LookupTypeID)
{
    using (VLFDocumentEntities context = new VLFDocumentEntities())
    {
        return (from c in context.Lookup
                    where c.LookupTypeID == LookupTypeID
                    select c).ToList();
    }
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top