public OperationResult UpdateProfessor(SchoolObject professor)
		{
			return OperationResult.Invoke(() =>
			{
				using (var dataBase = CreateConnection())
				{
					var professorData = dataBase.ProfessorSet.Find(professor.Id);

					professorData.Name = professor.Name;

					dataBase.ProfessorSet.Attach(professorData);
					var entry = dataBase.Entry(professorData);
					entry.State = EntityState.Modified;

					dataBase.SaveChanges();
				}
			});
		}
		public OperationResult UpdateSubject(SchoolObject subject)
		{
			return OperationResult.Invoke(() =>
			{
				using (var dataBase = CreateConnection())
				{
					var subjectData = dataBase.SubjectSet.Find(subject.Id);

					subjectData.Title = subject.Name;

					dataBase.SubjectSet.Attach(subjectData);
					var entry = dataBase.Entry(subjectData);
					entry.State = EntityState.Modified;

					dataBase.SaveChanges();
				}
			});
		}
		public OperationResult UpdateGroup(SchoolObject group)
		{
			return OperationResult.Invoke(() =>
			{
				using (var dataBase = CreateConnection())
				{
					var groupData = dataBase.GroupSet.Find(group.Id);

					groupData.Name = group.Name;

					dataBase.GroupSet.Attach(groupData);
					var entry = dataBase.Entry(groupData);
					entry.State = EntityState.Modified;

					dataBase.SaveChanges();
				}
			});
		}
		public OperationResult<SchoolObject> CreateProfessor(SchoolObject professor)
		{
			return OperationResult.Invoke(() =>
			{
				using (var dataBase = CreateConnection())
				{
					var professorEntity = new Professor
					{
						Name = professor.Name
					};

					dataBase.ProfessorSet.Add(professorEntity);

					dataBase.SaveChanges();

					return ModelConverter.ConvertToSchoolObject(professorEntity);
				}
			});
		}
		public OperationResult<SchoolObject> CreateSubject(SchoolObject subject)
		{
			return OperationResult.Invoke(() =>
			{
				using (var dataBase = CreateConnection())
				{
					var subjectEntity = new Subject
					{
						Title = subject.Name
					};

					dataBase.SubjectSet.Add(subjectEntity);

					dataBase.SaveChanges();

					return ModelConverter.ConvertToSchoolObject(subjectEntity);
				}
			});
		}
		public OperationResult<SchoolObject> CreateGroup(SchoolObject group)
		{
			return OperationResult.Invoke(() =>
			{
				using (var dataBase = CreateConnection())
				{
					var groupEntity = new Group
					{
						Name = group.Name
					};

					dataBase.GroupSet.Add(groupEntity);

					dataBase.SaveChanges();

					return ModelConverter.ConvertToSchoolObject(groupEntity);
				}
			});
		}