| 

.NET C# Java Javascript Exception

4
Hallo Allerseits,

1.
ich habe ein (Janus) Grid bei dem ich über DataSource eine LINQ Abfrage anbinde.
grdAssignement.DataSource = From p In Entities.Clients Select p

Der Inhalt wird nun im Grid korrekt dargestellt.

2.
Nun adde ich einen neuen Datensatz
Dim newClient As New Clients With {.ClientName = Environment.MachineName, .ClientUID = Guid.NewGuid()}

Entities.AddToClients(newClient)

3.
grdAssignement.Refetch

Hinweis: Ich mache kein Entities.SaveChanges. Die Änderungen sollen erst später durch den User bewusst persistiert werden.

Ergebnis: Das Grid beinhaltet nicht meinen soeben hinzugefügten Datensatz.

Frage: Wie schaffe ich es ohne SaveChanges den inhalt der DataSource im Grid anzuzeigen?

p.s. Framework 3.5 SP1 / EF1
05.03.2014
Thomas Sczyrba 1,4k 1 2 9
Thomas Sczyrba 1,4k 1 2 9
2 Antworten
2
Queries auf dem Context werden immer direkt gegen die Datenquelle ausgeführt. Dort ist Dein Datensatz aber erst nach einem SaveChanges() enthalten. Du musst also selbst dafür sorgen, dass die hinzugefügten aber noch nicht persistierten Objekte ebenfalls zurückgegeben werden.
09.03.2014
ffordermaier 8,4k 3 9
1
Bei DevExpress beispielsweise wird ein IQueryable Objekt automatisch mit ToList in eine Liste umgewandelt und im Grid neu gebunden. Auch dort wird ein neuer Datensatz nach dem hinzufügen nicht angezeigt.

Als Lösung wird geraten, die Datasource des Grids zunächst auf null zu setzen und dann wieder auf die Linq Abfrage zu setzen. Also:

grdAssignement.DataSource = null;
grdAssignement.DataSource = From p In Entities.Clients Select p


Vielleicht ist dies ja bei dem Janus Grid ähnlich. Versuche es mal.
09.03.2014
JEwen 2,7k 5
1
Ach ja, EF1? Recht alt, mittlerweile sind wir bei EF6!
JEwen 09.03.2014

Stelle deine .net-Frage jetzt!