I don't know how to get information from several tables
There are Users and Passports tables.
Information is output from the Users table, but it is not output from the Passports table. What can be done?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace StudyGroupDiary
{
/// <summary>
/// Логика взаимодействия для PersonalBusinessPage.xaml
/// </summary>
public partial class PersonalBusinessPage : Page
{
private Users _currentUsers = new Users();
public PersonalBusinessPage(Users selectedUsers)
{
InitializeComponent();
if (selectedUsers != null)
{
_currentUsers = selectedUsers;
}
DataContext = _currentUsers;
}
private void BtnSave_Click(object sender, RoutedEventArgs e)
{
StringBuilder errors = new StringBuilder();
if (string.IsNullOrWhiteSpace(_currentUsers.Name))
errors.AppendLine("Укажите Имя!");
if (string.IsNullOrWhiteSpace(_currentUsers.Surname))
errors.AppendLine("Укажите Фамилию!");
if (string.IsNullOrWhiteSpace(_currentUsers.MiddleName))
errors.AppendLine("Укажите Отчество!");
if (string.IsNullOrWhiteSpace(_currentUsers.Role))
errors.AppendLine("Укажите Роль!");
if (string.IsNullOrWhiteSpace(_currentUsers.DateOfBirth))
errors.AppendLine("Укажите дату рождения!");
if (string.IsNullOrWhiteSpace(_currentUsers.Gender))
errors.AppendLine("Укажите пол!");
if (errors.Length > 0)
{
MessageBox.Show(errors.ToString());
return;
}
if (_currentUsers.UserID == 0)
StudyGroupDiaryBDEntities.GetContext().Users.Add(_currentUsers);
try
{
StudyGroupDiaryBDEntities.GetContext().SaveChanges();
MessageBox.Show("Информация сохранена!");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message.ToString());
}
}
}
}
4 Replies
I don't see you getting any data from the database in this code
That said, if you want to get all users and their passport information, for example, it would be best to use a
.Select()
into a DTO
Second best option would be an .Include()
That is all assuming you have proper relationship between users and passports set up, of courseThank you very much for the advice. And how can this be done? This is the first time I've heard of .Select() and .Include()
Let's take database models like this:
We would like to get a list of five most recent blogposts, with their tags and authors. We don't need all of the information about the tags or authors, mind you. We don't need the author's password, for example.
Thus, we create a DTO that will represent the shape of data we actually do want:
and we can use
.Select()
to project our database models into that DTO, so the database only selects what we actually need. That is, it does not execute a SELECT * FROM
but rather SELECT a, b, c FROM
Thank you very much❤️