Introduction

This article shows how to delete data using Entity Framework in WPF applications.

Create a WPF Application as in Figure 1.


Figure 1: Create WPF application

Add an ADO.NET entity data model to the project as in Figures 2 and 3.

Figure 2: Add Entity Framework

Figure 3: Wizard

Figure 4: Configure connection

Figure 5: Choose version

Figure 6: Select database objects

MainWindow.xaml

  1. <Window x:Class="DeleteData_WPF_EF.MainWindow"
  2. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  3. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  4. Title="MainWindow"
  5. Width="525"
  6. Height="350"
  7. Loaded="Window_Loaded">
  8. <Grid>
  9. <DataGrid x:Name="dgEmployee"
  10. Width="267"
  11. Margin="118,47,0,0"
  12. HorizontalAlignment="Left"
  13. VerticalAlignment="Top"
  14. AutoGenerateColumns="False"
  15. CanUserAddRows="False"
  16. CanUserDeleteRows="True"
  17. ColumnWidth="*">
  18. <DataGrid.Columns>
  19. <DataGridTextColumn x:Name="dgrEmpId"
  20. Binding="{Binding EmpId}"
  21. Header="EmpId"
  22. IsReadOnly="True" />
  23. <DataGridTextColumn x:Name="dgrFirstName"
  24. Binding="{Binding FirstName}"
  25. Header="FirstName"
  26. IsReadOnly="True" />
  27. <DataGridTextColumn x:Name="dgrLastName"
  28. Binding="{Binding LastName}"
  29. Header="LastName"
  30. IsReadOnly="True" />
  31. <DataGridTemplateColumn>
  32. <DataGridTemplateColumn.CellTemplate>
  33. <DataTemplate>
  34. <Button x:Name="btnDelete"
  35. Click="btnDelete_Click"
  36. Content="Delete" />
  37. </DataTemplate>
  38. </DataGridTemplateColumn.CellTemplate>
  39. </DataGridTemplateColumn>
  40. </DataGrid.Columns>
  41. </DataGrid>
  42. </Grid>
  43. </Window>
MainWindow.xaml.cs
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using System.Windows;
  7. using System.Windows.Controls;
  8. using System.Windows.Data;
  9. using System.Windows.Documents;
  10. using System.Windows.Input;
  11. using System.Windows.Media;
  12. using System.Windows.Media.Imaging;
  13. using System.Windows.Navigation;
  14. using System.Windows.Shapes;
  15. namespace DeleteData_WPF_EF
  16. {
  17. /// <summary>
  18. /// Interaction logic for MainWindow.xaml
  19. /// </summary>
  20. public partial class MainWindow : Window
  21. {
  22. EmployeeDBEntities objEntities = new EmployeeDBEntities();
  23. public MainWindow()
  24. {
  25. InitializeComponent();
  26. }
  27. private void Window_Loaded(object sender, RoutedEventArgs e)
  28. {
  29. dgEmployee.ItemsSource = objEntities.Employees.ToList();
  30. }
  31. private void btnDelete_Click(object sender, RoutedEventArgs e)
  32. {
  33. int empId = (dgEmployee.SelectedItem as Employee).EmpId;
  34. Employee employee = (from r in objEntities.Employees where r.EmpId == empId select r).SingleOrDefault();
  35. objEntities.Employees.Remove(employee);
  36. objEntities.SaveChanges();
  37. dgEmployee.ItemsSource = objEntities.Employees.ToList();
  38. }
  39. }
  40. }

The output of the application is as in Figures 7 and 8.

Figure 7: Output of the application before delete

Figure 8: Output of the application after delete

Summary

In this article we saw how to delete data using Entity Framework in WPF applications.