2009-05-20 12 views
0

Ich versuche, eine Liste der LINQ to SQL-Objekte zu erstellen, die ich dem Datenkontext hinzufügen und später einfügen werde. Wenn ich SubmitChanges() aufruft, bekomme ich eine Fehlermeldung, dass der Postleitzahl-Fremdschlüssel für das WeatherForecast-Objekt null ist.LINQ to SQL-Deep-Copy-Objekt mit Abhängigkeiten

Ich sehe, dass, wenn List.Add() aufgerufen wird, es keine tiefe Kopie der abhängigen Objekte tut. Gibt es trotzdem eine tiefe Kopie?

Dies ist ein Beispiel für das, was ich versuche zu tun.

function List<WeatherForecast> CreateForecast(Postcode postcode) 
{ 
    var forecasts = List<WeatherForecast>(); 

    var wf = new WeatherForecast() 
    { 
     ForecastDate = DateTime.Today 
     , CurrentTemperature = (decimal)today.Attribute(XName.Get("temperature")) 
    }; 
    wf.Postcode = postcode; 

    forecasts.Add(wf); 

    ... 
    Keep adding forecast objects into the list 
    ... 

    return forecasts; 
} 

Antwort

0

List.Add keine Kopie machen überhaupt. Wenn WeatherForecast ein Referenztyp ist, speichern Sie einfach einen Verweis auf den gerade erstellten WeatherForecast.

Das Problem besteht wahrscheinlich darin, dass Sie ein Postleitzahlobjekt verwenden, das noch nicht zur Datenbank hinzugefügt wurde.