| 

.NET C# Java Javascript Exception

10
Hallo,

ich habe per Drag & Drop eine Tabelle aus den Datenquellen auf ein WinForm gezogen.
Habe GridView, DataBindingSource und BindingNavigator angelegt bekommen. Alles prima.

Ich rufe Daten über LINQ / EntityFramework ab:

var query = from c in _db.Ansprechpartner select c;
var users = query.ToList();
this.ansprechpartnerBindingSource.DataSource = users;


Die DataBindingSource ist die Datenquelle für mein GridView-Steuerlement.

Ich speichere die Daten folgendermaßen:

_db.SaveChanges();


Datenquelle in ein SQLServer. Die Tabelle hat selbstverständlich einen PrimaryKey dessen Wert automatisch inkrementiert wird.

Ich kann nun im DatGridView durch die Daten navigieren und Änderungen werden mir auch übernommen.
Lediglich NEUE Datensätze werden NICHT hinzugefügt / bzw. durch _db.SaveChanges() nicht in die Datenbank übernommen. Das Object-Kontext-Objekt scheint nicht einmal mitzubekommen dass im DataGridView ein neuer Datensatz eingegeben wurde.
Was mache ich falsch?


Laut einem Tutorial von Microsoft muss der Hinzufügen-Button des BindingNavigators nicht weiter ausprogrammiert werden.

Viele Grüße

Michael
27.12.2011
NetDeveloper1978 171 2 6
Konntest du bisher sicher stellen, dass der ObjectContext um das entsprechende Item erweitert wurde? Auf welches Tutorial von Microsoft beziehst du dich?
Mario Priebe 28.12.2011
Das scheint genau das Problem zu sein. Das ObjectContext-Objekt wird nicht um das Item erweitert. Das ist im Prinzip der Kern meiner Frage.
Da ich mit einer DataBindingSource arbeite, war ich der Meinung, dass wenn ich neue Daten in einem GridView eingebe, diese auch dem ObjectContext hinzugefügt werden.
NetDeveloper1978 11.01.2012
Auf die Beantwortung dieser Frage war ein Kopfgeld in Höhe von 50 Reputationspunkten ausgesetzt. Das Kopfgeld wurde bereits vergeben.
1 Antwort
6
Hallo,

ich vermute mal, dass Du mit einem .ToList() nicht mehr das Objekt aus dem Datacontext an die DataBindingSource hängst, sondern eben eine generische Liste.

Gibt es einen Grund dafür, dass Du das so machst? In dem Query holst Du Dir doch nur die ganze Tabelle ab, also solltest Du doch auch folgendes machen können:

this.ansprechpartnerBindingSource.DataSource = _db.Ansprechpartner;


Gruß
12.01.2012
LutzJ 1,3k 1 8
Ich bekomm' die Kriese!!! Das IST es!!!!
Vielen Dank!!!!
NetDeveloper1978 16.01.2012

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