Я использую:
- Entity Framework v6.2.0
- SQL Server 2012
У меня есть эти таблицы:
- tbl_01_Groups;
- tbl_02_Students;
- tbl_03_GroupsStud;
Таблица tbl_01_Groups
отображается в dataGridView1
.Один студент может быть в нескольких группах.
Для решения этой проблемы подозреваю, что необходимо построить таблицу отношений tbl_03_GroupsStud
.
Вопрос: как заставить dataGridView2 отображать table_2
записей, принадлежащих группе, выбранной в dataGridView1?
Требования для table_2
:
table_2
должны содержать следующие поля:
- [tbl_02_Students]. [NameStud];
- [tbl_02_Students]. [Property_1];
- [tbl_01_Groups]. [NameGroup];
- ... другие необходимые столбцы
если в запись table_2
вносятся изменения, то эти изменения отображаются в исходном источнике;
- если запись добавлена к
table_2
, то эта запись отображается в источнике; Table_2
планируется использовать в другом запросе.
Как заставить table_2
соответствовать вышеуказанным требованиям?
Мой код:
ContextDB cntxtDB;
public Frm1UC()
{
InitializeComponent();
cntxtDB = new ContextDB();
}
private void Frm1UC_Load(object sender, EventArgs e)
{
Fill_dataGridView1();
}
public void Fill_dataGridView1()
{
try
{
cntxtDB.tbl_01_Groups.Load();
bs_Grid1.DataSource = cntxtDB.tbl_01_Groups.Local.ToBindingList();
dataGridView1.DataSource = bs_Grid1;
}
catch (Exception ex)
{
string s = ex.Message;
string t = ex.StackTrace;
// throw;
MessageBox.Show(s);
}
}
tbl_01_Groups
:
![enter image description here](https://i.stack.imgur.com/KjVGM.jpg)
tbl_02_Students
:
![enter image description here](https://i.stack.imgur.com/bUCQ5.jpg)
tbl_03_GroupsStud
:
![enter image description here](https://i.stack.imgur.com/ylJus.jpg)
dataGridView1, dataGridView2
:
Update_1
что-тоКак мне удалось сделать с помощью запросов в MSAccess:
Запрос req_GroupsStud_Stud
:
SELECT tbl_03_GroupsStud.*, tbl_02_Students.NameStud
FROM tbl_03_GroupsStud
INNER JOIN tbl_02_Students
ON tbl_03_GroupsStud.id_stud = tbl_02_Students.id_stud;
Запрос req_GroupsStud_CurGroup
:
SELECT req_GroupsStud_Stud.*, req_GroupsStud_Stud.id_group
FROM req_GroupsStud_Stud
WHERE (((req_GroupsStud_Stud.id_group)=[Forms]![frm_00_00_MainForm]![id_group_Frm]));
Из формы, используявыражение [Forms]![Frm_00_00_MainForm]![Id_group_Frm]
, параметр [id_group_Frm]
передается в запрос.
Я не понимаю, как сделать то же самое, используя Entity Framework и MS SQL Serever.