EF Referenzierte Tabelle --> ID

24/06/2009 - 15:54 von Andreas Volt | Report spam
Hallo Zusammen

ich habe hier ein kleine Problem mit dem Data Entitie Framework.

Ich habe 2 Tabellen (eigentlich mehrere) die eine Tabelle ist mit der
anderen Verknüpft per ID. Jetzt kann ich die Daten ohne weiteres Aufrufen
beispielsweise so:
WorkTimeEntities wt = new WorkTimeEntities();
var test = (from w in wt.tblTimeSheet
where w.BenutzerID_fk == 1
select new {
BenutzerID = w.BenutzerID_fk,
TimeCode = w.tblTimeCodes.Code,
Datum = w.Datum,
Bemerkung = w.Bemerkung
}).First();

txt1.Text = test.BenutzerID.ToString();
txt2.Text = test.Datum.ToString();
txt3.Text = test.TimeCode;
txt4.Text = test.Bemerkung;

die Tabelle tblTimeSheet ist die Haupttabelle und beinhaltet die ID der
Tabelle tblTimeCode.
Wenn ich jetzt das gesamte zurück schreiben möchte klappt das nicht. Ich
finde in der Tabelle tblTimeSheet die Spalte der Referenz ID nicht, daher
hab ich versucht über die ID der Tabelle tblTimeCode zu gehen, jedoch
erhalte ich egal was ich tu eine Null Exeption. Sprich wenn ich die LinQ
Abfrage mache und zurück schreiben will, sagt er mir, dass die Tabelle
tblTimeCode null ist?

Hier noch der Code den ich versucht hatte um die Daten zurück zu speichern:

tblTimeSheet ts = new tblTimeSheet();

ts.Datum = Convert.ToDateTime(txt2.Text);
// hier kommt die Exception, dass tblTimeCode null ist.
ts.tblTimeCodes.TimeCodeID = 3;

wt.SaveChanges();

Woran liegt das? Was muss ich tun um die ID's der Referenzierten Tabellen in
die Haupttabelle zurück zu schreiben?

Gruss Andreas
 

Lesen sie die antworten

#1 Markus Springweiler
24/06/2009 - 17:16 | Warnen spam
Andreas,

Hier noch der Code den ich versucht hatte um die Daten zurück zu speichern:

tblTimeSheet ts = new tblTimeSheet();

ts.Datum = Convert.ToDateTime(txt2.Text);
// hier kommt die Exception, dass tblTimeCode null ist.
ts.tblTimeCodes.TimeCodeID = 3;



Theoretisch:
ts.tblTimeCodes = wt.tblTimeCodes.Where(tc => tc.TimeCodeID == 3).AsEnumerable().Single();

Aber STOPP: Du verwendest völlig falsche Begriffe und hast vermutlich ein
völlig falsches Modell im Kopf, am ehesten ein DataSet-gepràgtes: "tbl" ist
mehrfach Bockmist:
* weil es kleingeschrieben ist
* weil solche Pràfixe generell deprecated sind
* weil es keine Table ist, sondern am ehesten eine TableRow, genauer eine
Entitàt.

/\/\arkus.

Ähnliche fragen