Не кастуется один из классов БД в класс Object

Я делаю приложение для управления БД в проекте WPF. Для изменения объекта таблицы я сделал две кнопки: "найти объект" и "изменить объект". Первая(Find_CLick) должна находить объект в выбранной таблице(выбираю таблицу в комбобоксе),а вторая(Change_Click) должна менять значение полей этого обьекта на поля из ТекстБоксов.В классе окна у меня переменная curObj типа Object.Туда я записываю найденный обьект в первой функции.Во второй я нахожу опять обьект и меняю его поля.Но почему-то после нажатия кнопки вылазит исключение

Unable to cast object of type 'System.Object' to type 'Library.Models.Group'

В другие классы он нормально кастует.Ошибка возникает в функции Change_Click в case "Group".Залил сюда часть кода.Код у меня не очень,потому что не разобрался еще с WPF нормально,но вообщем здесь проблема не в моем говнокоде,а именно в касте,иначе бы он остальные классы не кастовал.

Класс Окна:

public partial class MainWindow : Window
    {
        Object curObj;
        public MainWindow()
        {
            InitializeComponent();
            curObj = new Object();   
        }

private void Find_Click(object sender, RoutedEventArgs e)
        {
            string text = LibraryObjects.Text;
            using (LibraryContext db = new LibraryContext())
            {
                try
                {
                    switch (text)
                    {
                        case "Libs":
                            {
                                if (tb1.Text != "")
                                {
                                    foreach (var i in db.Libs)
                                    {
                                        if(i.Name == tb1.Text)
                                        {
                                            curObj = i;
                                        }
                                    }
                                }
                                break;
                            }
                        case "Librarians":
                            {
                                if (tb1.Text != "" && tb2.Text != "" && list3.Text != null)
                                {
                                    foreach (var i in db.Librarians)
                                    {
                                        if (i.FirstName == tb1.Text&&i.LastName==tb2.Text&&i.Id_Lib==int.Parse(list3.Text))
                                        {
                                            curObj = i;
                                        }
                                    }
                                }
                                break;
                            }
                        case "Groups":
                            {
                                if (tb1.Text != "" && list2.Text != null)
                                {
                                    foreach (var i in db.Groups)
                                    {
                                        if (i.Name == tb1.Text && i.Id_Faculty == int.Parse(tb2.Text) )
                                        {
                                            curObj = i;
                                        }
                                    }
                                }
                                break;
                            }
                        case "Faculties":
                            {
                                if (tb1.Text != "") {
                                    foreach (var i in db.Faculties)
                                    {
                                        if (i.Name == tb1.Text)
                                        {
                                            curObj = i;
                                        }
                                    }
                                }
                                break;
                            }
                        case "Students":
                            {
                                if (tb1.Text != "" && tb2.Text != "" && list3.Text != null && tb4.Text != "")
                                {
                                    foreach (var i in db.Students)
                                    {
                                        if (i.FirstName == tb1.Text && i.LastName == tb2.Text && i.Id_Group == int.Parse(list3.Text)&&i.Term==int.Parse(tb4.Text))
                                        {
                                            curObj = i;
                                        }
                                    }
                                }
                                break;
                            }
                        case "S_Cards":
                            {
                                if (list1.Text != null && list2.Text != null && tb3.Text != "" && tb4.Text != "" && list5.Text != null && list6.Text != null)
                                {
                                    foreach (var i in db.SCards)
                                    {
                                        if (i.Id_Student == int.Parse(list1.Text) && i.Id_Book == int.Parse(tb2.Text) &&  i.DateIn == DateTime.Parse(tb3.Text) 
                                            && i.DateOut == DateTime.Parse(tb4.Text)&& i.Id_Lib == int.Parse(list5.Text)&& i.Id_Librarian == int.Parse(list6.Text))
                                        {
                                            curObj = i;
                                        }
                                    }
                                }
                                break;
                            }
                        case "Teachers":
                            {
                                if (tb1.Text != "" && tb2.Text != "" && list3.Text != null)
                                {
                                    foreach (var i in db.Teachers)
                                    {
                                        if (i.FirstName == tb1.Text && i.LastName == tb2.Text && i.Id_Dep == int.Parse(list3.Text))
                                        {
                                            curObj = i;
                                        }
                                    }
                                }
                                break;
                            }
                        case "T_Cards":
                            {
                                if (list1.Text != null && list2.Text != null && tb3.Text != "" && tb4.Text != "" && list5.Text != null && list6.Text != null)
                                {
                                    foreach (var i in db.TCards)
                                    {
                                        if (i.Id_Teacher == int.Parse(list1.Text) && i.Id_Book == int.Parse(tb2.Text) && i.DateIn == DateTime.Parse(tb3.Text)
                                            && i.DateOut == DateTime.Parse(tb4.Text) && i.Id_Lib == int.Parse(list5.Text) && i.Id_Librarian == int.Parse(list6.Text))
                                        {
                                            curObj = i;
                                        }
                                    }
                                }
                                break;
                            }
                        case "Departments":
                            {
                                if (tb1.Text != "") {
                                    foreach (var i in db.Departments)
                                    {
                                        if (i.Name == tb1.Text)
                                        {
                                            curObj = i;
                                        }
                                    }
                                }
                                break;
                            }
                        case "Authors":
                            {
                                if (tb1.Text != "" && tb2.Text != "") {
                                    foreach (var i in db.Authors)
                                    {
                                        if (i.FirstName == tb1.Text && i.LastName == tb2.Text )
                                        {
                                            curObj = i;
                                        }
                                    }
                                }
                                break;
                            }
                        case "Categories":
                            {
                                if (tb1.Text != "") {
                                    foreach (var i in db.Categories)
                                    {
                                        if (i.Name == tb1.Text)
                                        {
                                            curObj = i;
                                        }
                                    }
                                }
                                break;
                            }
                        case "Presses":
                            {
                                if (tb1.Text != "") {
                                    foreach (var i in db.Presses)
                                    {
                                        if (i.Name == tb1.Text)
                                        {
                                            curObj = i;
                                        }
                                    }
                                }
                                break;
                            }
                        case "Themes":
                            {
                                if (tb1.Text != "") {
                                    foreach (var i in db.Themes)
                                    {
                                        if (i.Name == tb1.Text)
                                        {
                                            curObj = i;
                                        }
                                    }
                                }
                                break;
                            }
                        case "Books":
                            {
                                if (tb1.Text != "" && tb2.Text != "" && tb3.Text != "" && list4.Text != null && list5.Text != null
                                    && list6.Text != null && list7.Text != null && list8.Text != null && tb9.Text != "" && tb10.Text != "")
                                {
                                    foreach (var i in db.Books)
                                    {
                                        if (i.Name == tb1.Text && i.Pages == int.Parse(tb2.Text) && i.YearPress == int.Parse(tb3.Text)&& i.Id_Themes==int.Parse(list4.Text)
                                            && i.Id_Category == int.Parse(list5.Text) && i.Id_Author == int.Parse(list6.Text) && i.Id_Press == int.Parse(list7.Text) &&
                                            i.Id_Lib == int.Parse(list8.Text)&& i.Comment == tb9.Text&& i.Quantity==int.Parse(tb10.Text))
                                        {
                                            curObj = i;
                                        }
                                    }
                                }
                                break;
                            }
                    }
                    db.SaveChanges();
                }
                catch(Exception) { }
            }
        }

 private void Change_Click(object sender, RoutedEventArgs e)
    {
        string? text = LibraryObjects.Text;
        using (LibraryContext db = new LibraryContext())
        {
            switch (text)
            {
                case "Libs":
                    {
                        foreach (var i in db.Libs)
                        {
                            var lib = (Lib)curObj;
                            if (i.Name == lib.Name)
                            {
                                i.Name = tb1.Text;  
                            }
                        }
                        break;
                    }
                case "Librarians":
                    {
                        foreach (var i in db.Librarians)
                        {
                            var libr = (Librarian)curObj;
                            if (i.FirstName == libr.FirstName&&i.LastName==libr.LastName&&i.Id_Lib==libr.Id_Lib)
                            {
                                i.FirstName = tb1.Text;
                                i.LastName = tb2.Text;
                            }
                        }
                        break;
                    }
                case "Groups":
                    {
                        foreach (var i in db.Groups)
                        {
                            var group = (Group)curObj;
                            if (i.Name == group.Name&&i.Id_Faculty==group.Id_Faculty)
                            {
                                i.Name = tb1.Text;
                            }
                        }
                        break;
                    }
                case "Faculties":
                    {
                        foreach (var i in db.Faculties)
                        {
                            var fac = (Faculty)curObj;
                            if (i.Name == fac.Name)
                            {
                                i.Name = tb1.Text;
                            }
                        }
                        break;
                    }
                case "Students":
                    {
                        foreach (var i in db.Students)
                        {
                            var stud = (Student)curObj;
                            if (i.FirstName == stud.FirstName && i.LastName == stud.LastName && i.Id_Group == stud.Id_Group&&i.Term==stud.Term)
                            {
                                i.FirstName = tb1.Text;
                                i.LastName = tb2.Text;
                                i.Term = int.Parse(tb4.Text);
                            }
                        }
                        break;
                    }
                case "S_Cards":
                    {
                        foreach (var i in db.SCards)
                        {
                            var scard = (SCard)curObj;
                            if (i.Id_Student == scard.Id_Student && i.Id_Book == scard.Id_Book && i.DateIn == scard.DateIn
                                        && i.DateOut == scard.DateOut && i.Id_Lib == scard.Id_Lib && i.Id_Librarian == scard.Id_Librarian)
                            {
                                i.Id_Book = int.Parse(tb2.Text);
                            }
                        }
                        break;
                    }
                case "Teachers":
                    {
                        foreach (var i in db.Teachers)
                        {
                            var teacher = (Teacher)curObj;
                            if (i.FirstName == teacher.FirstName && i.LastName == teacher.LastName && i.Id_Dep == teacher.Id_Dep)
                            {
                                i.FirstName = tb1.Text;
                                i.LastName = tb2.Text;
                               
                            }
                        }
                        break;
                    }
                case "T_Cards":
                    {
                        foreach (var i in db.TCards)
                        {
                            var tcard = (TCard)curObj;
                            if (i.Id_Teacher == tcard.Id_Teacher && i.Id_Book == tcard.Id_Book && i.DateIn == tcard.DateIn
                                        && i.DateOut == tcard.DateOut && i.Id_Lib == tcard.Id_Lib && i.Id_Librarian == tcard.Id_Librarian)
                            {
                                i.Id_Book = int.Parse(tb2.Text);
                            }
                        }
                        break;
                    }
                case "Departments":
                    {
                        foreach (var i in db.Departments)
                        {
                            var dep = (Department)curObj;
                            if (i.Name == dep.Name)
                            {
                                i.Name = tb1.Text;
                            }
                        }
                        break;
                    }
                case "Authors":
                    {
                        foreach (var i in db.Authors)
                        {
                            var author = (Author)curObj;
                            if (i.FirstName == author.FirstName&&i.LastName==author.LastName)
                            {
                                i.FirstName = tb1.Text;
                                i.LastName = tb2.Text;
                            }
                        }
                        break;
                    }
                case "Categories":
                    {
                        foreach (var i in db.Categories)
                        {
                            var cat = (Category)curObj;
                            if (i.Name == cat.Name)
                            {
                                i.Name = tb1.Text;
                            }
                        }
                        break;
                    }
                case "Presses":
                    {
                        foreach (var i in db.Presses)
                        {
                            var press = (Press)curObj;
                            if (i.Name == press.Name)
                            {
                                i.Name = tb1.Text;
                            }
                        }
                        break;
                    }
                case "Themes":
                    {
                        foreach (var i in db.Themes)
                        {
                            var theme = (Theme)curObj;
                            if (i.Name == theme.Name)
                            {
                                i.Name = tb1.Text;
                            }
                        }
                        break;
                    }
                case "Books":
                    {
                        foreach (var i in db.Books)
                        {
                            var book = (Book)curObj;
                            if (i.Name == book.Name && i.Pages == book.Pages && i.YearPress == book.Id_Press && i.Id_Themes == book.Id_Themes
                                           && i.Id_Category == book.Id_Category && i.Id_Author == book.Id_Author && i.Id_Press == book.Id_Press &&
                                           i.Id_Lib == book.Id_Lib && i.Comment == book.Comment && i.Quantity == book.Quantity)
                            {
                                showMessage();
                                i.Name = tb1.Text;
                                i.Pages = int.Parse(tb2.Text);
                                i.YearPress = int.Parse(tb3.Text);
                                i.Comment = tb9.Text;
                                i.Quantity = int.Parse(tb10.Text);
                            }
                        }
                        break;
                    }
            }
            db.SaveChanges();
        }
    }

класс Group(создан scaffold'ом):

using System;
using System.Collections.Generic;

namespace Library.Models
{
    public partial class Group
    {
        public Group()
        {
            Students = new HashSet<Student>();
        }
        public Group(string Name, int Id_Faculty)
        {
            this.Name = Name;
            this.Id_Faculty = Id_Faculty;
        }
        public int Id { get; set; }
        public string Name { get; set; } = null!;
        public int Id_Faculty { get; set; }

        public virtual Faculty IdFacultyNavigation { get; set; } = null!;
        public virtual ICollection<Student> Students { get; set; }
    }
}

интерфейс


Ответы (0 шт):