первый немного фона. Вот SQLite скрипт я создал:Как сохранить внешний ключ с помощью Entity Framework?
create table Person(
ID integer not null primary key autoincrement,
Name text not null
);
create table Department(
ID integer not null primary key autoincrement,
Name text not null,
Leader integer not null references Person(ID)
);
Он генерирует следующий Entity Framework модель:
Здесь я пытаюсь создать сделать простое приложение, так что я могу научиться используйте SQLite, поэтому я могу сохранить нового Person в базе данных, а также сохранить новый отдел. У отдела может быть только 1 руководитель, и человек может быть лидером многих отделов.
Сейчас я сосредоточен на создании нового отдела.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace SQLite_Testing_Grounds
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
LoadUsersToComboBox();
}
private void LoadUsersToComboBox()
{
throw new NotImplementedException();
}
private void button2_Click(object sender, EventArgs e)
{
CreateNewPerson();
}
private void CreateNewPerson()
{
if (textBox2.Text != String.Empty)
{
ScansEntities1 db = new ScansEntities1();
Person user = new Person()
{
Name = textBox1.Text
};
db.AddToPeople(user);
db.SaveChanges();
}
}
private void button1_Click(object sender, EventArgs e)
{
CreateNewDepartment();
}
private void CreateNewDepartment()
{
if ((textBox1.Text != String.Empty) && (comboBox1.SelectedIndex >= 0))
{
ScansEntities1 db = new ScansEntities1();
Department department = new Department()
{
Name = textBox1.Text,
//Then what goes here? :/
};
}
throw new NotImplementedException();
}
}
}
Как сохранить идентификатор выбранного «Человека» с помощью ComboBox?
EDIT!
Следуя совету Джона Х., мой класс отдела (сгенерированный EF) не содержит определения для Лидера (как я ожидал бы, если бы использовал MS SQL).
Вот скриншот того, что он делает есть. Еще раз спасибо за огромную помощь.
, какая версия Entity Framework и Visual Studio вы используете? – Bhuvan
Visual Studio 2010, .NET Framework 3.5, так что я предполагаю EF 3.5? – 2010-10-28 14:26:05