Autor Beitrag
FrEEzE2046
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 109

Windows 98, 2000, XP Pro, Vista Ultimate 32 & 64 Bit, Windows 7 Beta 64 Bit
C/C++, C# (VS 2008 TeamSystem) - Delphi (Delphi 5) - Java (Eclipse)
BeitragVerfasst: Mi 10.11.10 11:49 
Hallo zusammen,

ich habe eine Silverlight Applikation welche ein ADO.NET Entity Model und einen darauf zugreifenden DomainService enthält.
Die Datenbank besteht aus zwei Tabellen:

TableA:
- ID (Identity / primary)
- ColA
- ColB
- ColC

TableB:
- ID (Identity / primary)
- ColA
- ColB

Join_A_B:
- aID (primary / foreign)
- bID (primary / foreign)
- dummy

Der Dummy in der Join-Tabelle ist nur, weil das Entity Framework sonst mit einer "reference only" Tabelle Probleme hat.
Nun habe ich mir testweiße mal folgenden Code zusammengebastelt:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
var ctx = new SampleDBDomainContext();

TableA a = new TableA()
{
    ColA = 4711,
    ColB = 4712,
    ColC = 4713
};

TableB b = new TableB()
{
    ColA = 815,
    ColB = 816
};

ctx.TableAs.Add(a);
ctx.TableBs.Add(b);
ctx.SubmitChanges();


Da TableA und TableB Identity Felder als Primär-Schlüssel haben, werden diese beim Anlegen automatisch gefüllt. Wie bekomme ich nun die Einträge in der Join-Tabelle hin?

Vielen Dank im Voraus für jede Hilfe.
FrEEzE2046 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 109

Windows 98, 2000, XP Pro, Vista Ultimate 32 & 64 Bit, Windows 7 Beta 64 Bit
C/C++, C# (VS 2008 TeamSystem) - Delphi (Delphi 5) - Java (Eclipse)
BeitragVerfasst: Mi 10.11.10 13:22 
Okay, ich habs. Man muss über die Join-Table die Einträge anlegen.

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
var ctx = new SampleDBDomainContext();

TableA a = new TableA()
{
    ColA = 4711,
    ColB = 4712,
    ColC = 4713
};

TableB b = new TableB()
{
    ColA = 815,
    ColB = 816
};

Join_A_B a_b = new Join_A_B();
a_b.TableA = a;
a_b.TableB = b;

//ctx.TableAs.Add(a);
//ctx.TableBs.Add(b);

ctx.Join_A_Bs.Add(a_b);
ctx.SubmitChanges();