插入值外键 [英] insert value to foreign key

查看:139
本文介绍了插入值外键的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问题是与外键:


  

INSERT语句冲突与外键约束FK_uzytkownik_Logowanie。冲突发生于数据库
  Restauracja的表dbo.Logowanie,列'登录ID'。结果
  该语句已终止。


我检查这个使用断点,当断点(运行的应用程序)为后

Logowanie主键中加入

  baza.SubmitChanges();

logowanie 表中的SubmitChanges 为LoginID

主键C $ C>。

如何从 logowanie 表复制为LoginID 的价值为LoginID uztkownik 表?我在这里补充外键值,但在这里为LoginID 还没有价值。

  Logowanie newlog =新Logowanie()
{
   登录=model.LoginModel.Użytkownik,
   Haslo =model.LoginModel.Hasło,
   KONTO = model.LoginModel.Konto
};uzytkownik用户=新uzytkownik()
{
   IMIE = model.uzytkownikModle.imie,
   nazwisko = model.uzytkownikModle.nazwisko,
   PESEL = model.uzytkownikModle.pesel,
   夹= model.uzytkownikModle.nip,
   电话= model.uzytkownikModle.telefon,
   adres_zamieszkania = model.uzytkownikModle.adres_zamieszkania,
   电子邮件= model.uzytkownikModle.email,
   为LoginID = newlog.LoginID //<<< ----------------
};baza.Logowanies.InsertOnSubmit(newlog);
baza.uzytkowniks.InsertOnSubmit(用户);baza.SubmitChanges();


解决方案

uzytkownik应该有一个名为Logowanie属性,它可以设置为您创建,但没有尚未提交新的实例:

  user.Logowanie = newlog;

problem is with foreign key:

The INSERT statement conflicted with the FOREIGN KEY constraint "FK_uzytkownik_Logowanie". The conflict occurred in database "Restauracja", table "dbo.Logowanie", column 'LoginID'.
The statement has been terminated.

I check this using breakpoints, and primary key in Logowanie table was added when breakpoints (running application) was after

baza.SubmitChanges();

Primary key of LoginID in logowanie table is added automatically during SubmitChanges.

How to copy value of LoginID from logowanie table to LoginID in uztkownik table? I add foreign key value here, but here LoginID hasn't value yet.

Logowanie newlog = new Logowanie()
{
   Login = model.LoginModel.Użytkownik,
   Haslo = model.LoginModel.Hasło,
   konto = model.LoginModel.Konto
};

uzytkownik user = new uzytkownik()
{
   imie = model.uzytkownikModle.imie,
   nazwisko = model.uzytkownikModle.nazwisko,
   pesel = model.uzytkownikModle.pesel,
   nip = model.uzytkownikModle.nip,
   telefon = model.uzytkownikModle.telefon,
   adres_zamieszkania = model.uzytkownikModle.adres_zamieszkania,
   email = model.uzytkownikModle.email,
   LoginID = newlog.LoginID //<<<----------------
};

baza.Logowanies.InsertOnSubmit(newlog);
baza.uzytkowniks.InsertOnSubmit(user);

baza.SubmitChanges();

解决方案

uzytkownik should have a property called Logowanie, which you can set to the new instance you created but didn't Submit yet:

user.Logowanie = newlog;

这篇关于插入值外键的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆