我对linq2sql有疑问。
如下所示,我有两张来自db的表--Dzieckos和Opiekuns。在Dzieckos我有idOpiekun。如何在下面插入这个idOpiekun,我在示例行中的FK中有错误。
protected void btDodaj_Click(object sender, EventArgs e)
{
DataClassesDataContext db = new DataClassesDataContext();
Dziecko dz = new Dziecko();
dz.imie = this.tbImieDz.Text;
dz.nazwisko = this.tbNazwiskoDz.Text;
dz.nrGrupy = Convert.ToInt32(this.dropGrupa.SelectedValue);
Opiekun op = new Opiekun();
op.imie = this.tbImieRodz.Text;
op.nazwisko = this.tbNazwiskoRodz.Text;
op.telefon = Convert.ToInt32(this.tbTel.Text);
dz.idOpiekun = op.idOpiekun; **//error line with FK**
db.Dzieckos.InsertOnSubmit(dz);
db.Opiekuns.InsertOnSubmit(op);
db.SubmitChanges();
Label2.Text = "Dodano " + this.tbImieDz.Text.ToString() + " " + this.tbNazwiskoDz.Text.ToString();
}
答案 0 :(得分:1)
如果您已正确配置dbml来处理外键,则应该可以:
protected void btDodaj_Click(object sender, EventArgs e)
{
using(DataClassesDataContext db = new DataClassesDataContext())
{
Dziecko dz = new Dziecko();
dz.imie = this.tbImieDz.Text;
dz.nazwisko = this.tbNazwiskoDz.Text;
dz.nrGrupy = Convert.ToInt32(this.dropGrupa.SelectedValue);
Opiekun op = new Opiekun();
dz.Opiekun.Add(op); //Linq to Sql will handle it
op.imie = this.tbImieRodz.Text;
op.nazwisko = this.tbNazwiskoRodz.Text;
op.telefon = Convert.ToInt32(this.tbTel.Text);
db.Dzieckos.InsertOnSubmit(dz);
db.SubmitChanges();
Label2.Text = "Dodano " + this.tbImieDz.Text.ToString() + " " + this.tbNazwiskoDz.Text.ToString();
}
}
答案 1 :(得分:1)
你应该能够这样做:
dz.Opiekun = op;
并删除此行:
db.Opiekuns.InsertOnSubmit(op);