| 

.NET C# Java Javascript Exception

0
Hallo,
ich muss eine menge Daten abfragen und berarbeiten.
Dazu nutze ich zB folgendes LINQ Statement für das EF4

Achtunge hingerotzt soll nur einmalig Daten verarbeiten
for (DateTime dt = new DateTime(2010,1,1); dt < new DateTime(2011,1,1); dt = dt.AddDays(1))
{
var OldDataList = (from i in db.Music
join c in db.Campaign on i.Kampagne equals c.AuftragID
where i.Found.Value.Equals(true)
where i.Anrufzeit.Value.Year == dt.Year
where i.Anrufzeit.Value.Month == dt.Month
where i.Anrufzeit.Value.Day == dt.Day
where !c.Typ.Equals("OLD")
select i).ToList();
var newData = (from i in db.OldMusic
join c in db.Campaign on i.Kampagne equals c.AuftragId
where i.FoundWave
where i.Teldate.Year == dt.Year
where i.Teldate.Month == dt.Month
where i.Teldate.Day == dt.Day
where !c.Typ.Equals("OLD")
select i).ToList();
iMax += (OldDataList.Count + newData.Count);
if(OnInit != null)
OnInit(this,new OnInitEventArgs(iMax));
foreach (Music m in OldDataList)
{
//Verarbeitung hier
if(OnCount != null)
OnCount(this,new OnCountEventArgs(){Count = ilfdnr});
ilfdnr++;
}
foreach (OldMusic m in newData)
{
//Verarbeitung hier
if (OnCount != null)
OnCount(this, new OnCountEventArgs() { Count = ilfdnr });
ilfdnr++;
}
OldDataList.Clear();
newData.Clear();

}

Wie ihr seht habe ich die Daten bereits in eine Schleife gepackt damit ich nur Tageweise abfragen muss. Trotrzdem füllt sich mein Speicher ohne Ende.
Jmd eine Idee wie ich das verhindern kann ?

Danke
07.03.2011
Gast
1 1
Wie ist die Architektur? 32 oder 64Bit ?
Mario Priebe 07.03.2011
Hi,

32 Bit
Derreck 07.03.2011
2 Antworten
0
Ohne jetzt deine genaue Anwendung zu kennen würde ich folgendes machen :

Damit der GC ordentlich erkennt was er aufräumen muss würde ich die Klasse IDisposable erben lassen.
Dann würde ich von Extern Datumswerte reinwerfen zB Pro Monat.

In einer Forschleife kannste dann die Klasse neu instanzieren und der GC tut seine Arbeit.

Grüße
07.03.2011
Pawel Warmuth 195 6
0
Wie erzeugst du den "db"-Context? Global in der Klasse? Oder bei jedem "Aufruf" mit using?
07.03.2011
phlow666 922 1 9

Stelle deine .net-Frage jetzt!
TOP TECHNOLOGIES CONSULTING GmbH