Najlepszy sposób na przechowywanie wartości wyliczeniowych w bazie danych - String lub Int

W mojej aplikacji mam wiele wyrażeń, które są używane jako typ właściwości w niektórych klasach.

Jaki jest najlepszy sposób przechowywania tych wartości w bazie danych, jako String lub Int?

FYI, będę także mapować te typy atrybutów używając płynnego Nhibernate.

Przykładowy kod:

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; }
    }
}

questionAnswers(2)

yourAnswerToTheQuestion