      - parameter inContext: The NSManagedObjectContext to remove the Entities from.
      */
     static public func removeAllExcept(toKeep: [Self], inContext context: NSManagedObjectContext) throws {
-        let fetchRequest = NSFetchRequest(entityName: entityName)
+        let fetchRequest = NSFetchRequest()
+        fetchRequest.entity = entityInContext(context)
         fetchRequest.predicate = NSPredicate(format: "NOT (self IN %@)", toKeep)
         try removeAllObjectsReturnedByRequest(fetchRequest, inContext: context)
     }

     - returns: [Self]: The array of matching entities.
     */
    static public func allInContext(context: NSManagedObjectContext, sortDescriptors: [NSSortDescriptor]? = nil) -> [Self] {
        let fetchRequest = NSFetchRequest(entityName: entityName)
        fetchRequest.sortDescriptors = sortDescriptors

        do {

    - parameter context: NSManagedObjectContext to remove the entities from.
    */
    static public func removeAll(context: NSManagedObjectContext) throws {
        let fetchRequest = NSFetchRequest()
        fetchRequest.entity = entityInContext(context)
        try removeAllObjectsReturnedByRequest(fetchRequest, inContext: context)
    }

