2012-04-04 5 views
1

Ich versuche, eine Objektliste von meinem Mapper zurückzugeben und sie in meiner Entity Framework-Datenbank zu speichern. Meine mapperclass wie diesesWie rufe ich meine Mapper-Methode auf, die eine List zurückgibt <>

class TimereportMappers 
    {   
    public List<Days> dayMap(List<Day> days) 
    { 
     List<Days> output = new List<Days>(); 

     foreach (Common.Day input in days) 
     { 
      output.Add(new Days() 
      { 
       Date = input.Date, 
       Hour = input.Hours 
      }); 
      //output.Date = input.Date; 
      //output.Hour = input.Hours; 
     } 

     return output; 
    } 

} 

Das Problem in meiner Dataaccess-Klasse sehen ist, dass ich weiß nicht, wie die Objekte in der Datenbank zu speichern, sieht das Verfahren in Data Access-Klasse wie diese

 public void sendDays(List<Common.Day> days) 
     { 
      TimereportMappers mapper = new TimereportMappers(); 
      context.Days.AddObject(mapper.dayMap(days));   
      context.SaveChanges(); 
     } 

Aber AddObject kann nur 1 Objekt hinzufügen? Wie füge ich eine Liste von Objekten hinzu?

Visual Studio gibt mir die Fehlercodes

Fehler 2 Argument 1: Konvertierung von 'System.Collections.Generic.List' auf 'Timereport.BusinessLogic.Data_Access.Days' C: \ Benutzer \ Widde \ Documents \ Visual Studio 2010 \ Projects \ Timereport \ Timereport.BusinessLogic \ TimereportDataAccess.cs 43 37 Timereport.BusinessLogic

und

Fehler 1 Die beste überlastet erfüllt hod match für 'System.Data.Objects.ObjectSet.AddObject (Timereport.BusinessLogic.Data_Access.Days)' hat einige ungültige Argumente C: \ Benutzer \ widde \ Dokumente \ Visual Studio 2010 \ Projekte \ Timereport \ Timereport.BusinessLogic \ TimereportDataAccess. cs 43 14 Timereport.BusinessLogic

Antwort

1

Würde das funktionieren? (Ich kann nicht obvously dies testen, aber die Idee ist nur 1 Objektinstanz statt der gesamten Liste zu einem Zeitpunkt hinzufügen)

sendDays Methode:

public void sendDays(List<Common.Day> days) 
{ 
    TimereportMappers mapper = new TimereportMappers(); 

    foreach (var day in days) 
    { 
     context.Days.AddObject(mapper.dayMap(day)); 
    } 

    context.SaveChanges(); 
} 

TimereportMappers Klasse:

class TimereportMappers 
{ 
    public Days dayMap(Day input) 
    { 
     return new Days 
     { 
      Date = input.Date, 
      Hour = input.Hours 
     }; 
    } 

} 
+0

Ja, die Idee ist richtig, es funktioniert jetzt. Ich musste nur einen Teil des Codes ändern, um zu meinem Projekt zu passen. Danke, dass du dir Zeit genommen hast, mein Problem zu lösen – rickard

0

Anruf AddObject() mutil-Zeiten und SaveChanges() einmal anrufen?

+0

Es ist nicht möglich, es einmal aufzurufen. Fehlercode in der ersten Nachricht aktualisiert – rickard

Verwandte Themen