Ich habe ein seltsames Problem. Ich lade 1k Rechnungsobjekte, Kopfzeile zuerst dann Details in meiner DAL. Ich verwende VB.NET für dieses Projekt. Ich bin in der Lage, die Rechnungsheader gut zu bekommen. Wenn ich die Details für jede Rechnung lade, erhalte ich eine Zeitüberschreitung bei SQL Server. Ich habe das Timeout auf 5 Minuten erhöht, aber immer noch das Gleiche. Wenn ich die Rechnungsanzahl auf 200 reduziere, funktioniert es gut. HierKann ich die Macht von Generics verwenden, um mein Problem zu lösen
ist, was ich tue
//I already loaded the invoice headers. I am now iterating each invoice to get it's detail For Each invoice As Invoice In invoices drInvoiceItems = DBSqlHelperFactory.ExecuteReader(CONNECTION_STRING, CommandType.StoredProcedure, "dbo.getinvoiceitem", _ New SqlParameter("@invoicenumber", invoice.InvoiceNumber)) While drInvoiceItems.Read() invoice.LineItems.Add(New InvoiceLine(drInvoiceItems("id"), drInvoiceItems("inv_id"), drInvoiceItems("prodid"), drInvoiceItems("name"), drInvoiceItems("barcode"), drInvoiceItems("quantity"), drInvoiceItems("costprice"))) End While Next Return invoices
Ich bin mir bewusst, dass ich 1k Verbindungen an die DB am Brennen aufgrund der Iterationen. Kann ich nicht mit einer select-Anweisung alle Positionen laden und dann wie etwas tun
For Each invoice As Invoice In invoices
invoice.Items.Add(invoiceItems.Find(Function(i as InvoiceItem),i.InvoiceNumber = invoice.InvoiceNumber))
Next
ich den Fehler whenusing der Lambda funcion oben Fehler 1 Der Wert des Typs ‚System.Collections.Generic.List erhalten (Of BizComm.InvoiceLine) 'kann nicht in' BizComm.InvoiceLine 'konvertiert werden. C: \ Projects \ BizComm \ InvoiceDAL.vb 75 35 BizComm
Vielleicht sollten Sie den Titel neu formulieren. Ich sehe das nicht in Bezug auf Generika überhaupt ... –