La mejor manera de almacenar valores de enumeración en la base de datos - String o Int

Tengo una serie de enumeraciones en mi aplicación que se utilizan como tipo de propiedad en algunas clases.

¿Cuál es la mejor manera de almacenar estos valores en la base de datos, como String o Int?

Para su información, también mapearé estos tipos de atributos usando Nhibernate fluido.

Código de muestra:

public enum ReportOutputFormat
{
    DOCX,
    PDF,
    HTML
}

public enum ReportOutputMethod
{
    Save,
    Email,
    SaveAndEmail
}

public class ReportRequest
{
    public Int32 TemplateId
    {
        get { return templateId; }
        set { templateId = value; }
    }
    public ReportOutputFormat OutputFormat
    {
        get { return outputFormat; }
        set { outputFormat = value; }
    }

    public ReportOutputMethod OutputMethod
    {
        get { return outputMethod; }
        set { outputMethod = value; }
    }
}

Respuestas a la pregunta(2)

Su respuesta a la pregunta