public List <CrossRef_Anime_Staff> GetByRoleType(StaffRoleType type)
 {
     lock (Cache)
     {
         return(RoleTypes.GetMultiple(type));
     }
 }
 public List <CrossRef_Anime_Staff> GetByAnimeIDAndRoleType(int id, StaffRoleType type)
 {
     lock (Cache)
     {
         return(AnimeIDs.GetMultiple(id).Where(xref => xref.RoleType == (int)type).ToList());
     }
 }
 public List <CrossRef_Anime_Staff> GetByAnimeIDAndRoleType(int id, StaffRoleType type)
 {
     using (RepoLock.ReaderLock())
     {
         return(GetByAnimeID(id).Where(xref => xref.RoleType == (int)type).ToList());
     }
 }
 public CrossRef_Anime_Staff GetByParts(int AnimeID, int?RoleID, int StaffID, StaffRoleType RoleType)
 {
     lock (Cache)
     {
         return(AnimeIDs.GetMultiple(AnimeID).FirstOrDefault(a =>
                                                             a.RoleID == RoleID && a.StaffID == StaffID && a.RoleType == (int)RoleType));
     }
 }
 public CrossRef_Anime_Staff GetByParts(int AnimeID, int?RoleID, int StaffID, StaffRoleType RoleType)
 {
     using (RepoLock.ReaderLock())
     {
         return(GetByAnimeID(AnimeID).Find(a =>
                                           a.RoleID == RoleID && a.StaffID == StaffID && a.RoleType == (int)RoleType));
     }
 }
 public List <CrossRef_Anime_Staff> GetByRoleType(StaffRoleType type)
 {
     using (RepoLock.ReaderLock())
     {
         if (IsCached)
         {
             return(RoleTypes.GetMultiple(type));
         }
         return(Table.Where(s => (StaffRoleType)s.RoleType == type).ToList());
     }
 }