EF lookups and enums
Instead of overloading the == and != operator you could simplify the part with the heavy casting by casting only once.  
Instead of multiple if..else..else if statements you should use a switch..case.  
using braces {} for single statment if's will make your code less error prone.  
also this will be just a typo, but you really should fix it. RequestTypesEumn vs. RequestTypesEnum this can be easily achieved if you place the cursor on the name of the enum and hit the F2 key. And while we are at this enum, the enum in the name automatically implies that these are multiple items, so RequestTypeEnum instead of RequestTypesEnum would be better.




RequestTypeEnum currentRequestType = (RequestTypesEumn)row.RequestType.ID;

switch(currentRequestType )
{
    case RequestTypeEnum.Leave:

        // request is leave
        break;

    case RequestTypeEnum.Loan:

        // request is loan
        break;

    //......
}