// For Deleting User SubTopic Calling from above static void DeleteUserSubTopic(EditorsEntities entity, int SubTopicId, int UserId) { // First, delete UserCitations for this SubTopic var UserCitationsToBeDeleted = entity.UserCitations.Where(u => u.SubTopicID == SubTopicId && u.UserID == UserId).ToList(); foreach (UserCitation UC in UserCitationsToBeDeleted) { entity.UserCitations.Remove(UC); } // Deleted UserCitations by above statement // Second, delete searches for this SubTopic entity.lib_DeleteSearchesFromSubTopic(SubTopicId, UserId); // Executing lib_DeleteSearchesFromSubTopic Stored Procedure. // Delete searches for this SubTopic by above stored procedure // Third, delete this SubTopic from subtopics and userhas sponsersubtopic var UserSubTopicToBeDeleted = entity.SubTopics.Where(s => s.SubTopicID == SubTopicId && s.UserID == UserId && s.Type == 2).FirstOrDefault(); if (UserSubTopicToBeDeleted != null) { entity.SubTopics.Remove(UserSubTopicToBeDeleted); } var UserSponsorFolderToBeDeleted = entity.UserHasSponsorFolders.Where(s => s.UserFolderId == SubTopicId && s.UserId == UserId).FirstOrDefault(); if (UserSponsorFolderToBeDeleted != null) { entity.UserHasSponsorFolders.Remove(UserSponsorFolderToBeDeleted); } entity.SaveChanges(); }