2016-12-10 2 views
1

Ich möchte Daten drei Beziehungstabelle einzufügen, aber ich kann das nicht tun:/C# Entity Framework Insert-Beziehungstabellen?

hier ist der Code

hali_sahaEntities con = new hali_sahaEntities(); 
Users user = new Users(); 
      Emails email = new Emails(); 
      Phones phone = new Phones(); 
     user.Name = textBox1.Text; 
     user.Surname = textBox7.Text; 
     user.IdentityNumber = Convert.ToInt32(textBox2.Text); 
     user.Adress = textBox5.Text; 
     user.Comment = textBox6.Text; 
     email.TCKN = Convert.ToInt32(textBox2.Text); 
     email.Email = textBox4.Text; 
     phone.TCKN = Convert.ToInt32(textBox2.Text); 
     phone.Phone = textBox3.Text; 
     con.Users.Add(user); 
      con.Emails.Add(email); 
      con.Phones.Add(phone); 
      con.SaveChanges(); 

Ich kann Daten Benutzer Tabelle einfügen, aber Tabellen E-Mails und Telefone können keine Daten einfügen?

hier meine Tabellen enter image description here

I changed my database like this

+0

wie Beziehung zwischen Tabellen verwenden kann? eins zu eins? – Eldeniz

+0

Ich benutze eins zu viele – oEs

+0

erstellen Sie Beziehung in Ihrem Entitätsmodell? – Eldeniz

Antwort

1

In diesem Fall Sie

Die INSERT-Anweisung in Konflikt mit dem FOREIGN KEY-Einschränkung "FK_Emails_Users" diesem Fehler geben werden. Der Konflikt ist in der Datenbank "****", Tabelle "dbo.Users", Spalte "IdentityNumber" aufgetreten. Die Anweisung wurde beendet.

so können Sie es von dieser Änderung beheben:

con.Users.Add(user); 
con.SaveChanges();//*Because of the relationship* 
con.Emails.Add(email); 
con.Phones.Add(phone); 
con.SaveChanges(); 
+0

Ich machte wie Sie sagen, aber immer noch nicht funktioniert – oEs

+0

@oEs bitte kopieren Sie Ihre Stack-Trace und innere Ausnahmen hier –

0

Ich änderte meine Datenbank wie diese enter image description here

+0

ist dies Ihre Antwort? – Eldeniz

1

Sie

hali_sahaEntities con = new hali_sahaEntities(); 
    Users user = new Users(); 

     user.Name = textBox1.Text; 
     user.Surname = textBox7.Text; 
     user.IdentityNumber = Convert.ToInt32(textBox2.Text); 
     user.Adress = textBox5.Text; 
     user.Comment = textBox6.Text; 

     Emails email = new Emails();  
     email.TCKN = Convert.ToInt32(textBox2.Text); 
     email.Email = textBox4.Text; 
     user.Emails.Add(email);//Emails is virtual proparty 

     Phones phone = new Phones(); 
     phone.TCKN = Convert.ToInt32(textBox2.Text); 
     phone.Phone = textBox3.Text; 
     user.Phones.Add(phone);//Phones is virtual proparty 

     con.Users.Add(user); 
     con.SaveChanges();