テーブルEmail
には、列がEmailType
です。 EmailType
は、nHibernateの列挙であり、intとしてDBに格納されます。私は、電子メールの種類の名前を取得するためにも拡張メソッドを持っています。表示名enum型のnHibernateで列挙型列をソートする方法
namespace Email
{
public enum EmailType : int
{
PasswordReset = 0,
EmailVerification = 1,
AccountCreation = 2
};
public static class EmailType Extension
{
public static string Name(this EmailType self)
{
switch (self)
{
case EmailType.PasswordReset :
return "Password Reset";
case EmailType.EmailVerification :
return "Email Verification";
case EmailType.AccountCreation :
return "Account Creation";
default:
return null;
}
}
}
}
その後、私は、私はNHibernateは基準を作成することで、電子メールのリストを取得していますEmailType.PasswordReset.Name()
を使用して列挙型の名前を取得できます。
var criteria = session.CreateCriteria<Email>();
criteria.SetFirstResult(startIndex).SetMaxResults(maxResults);
criteria.AddOrder(Order.Asc("EmailType"));
return criteria.List<Email>();
これは、DBに格納されているEmailType intの行をソートするという問題です。私がEmailType.PasswordReset.Name()
の拡張メソッドEmailType
列挙型の名前で並べ替えるために使用できる任意の方法はありますか?
これは偶然によってうまくいく:)。私がここに挙げたこれらの名前はほんのいくつかのものです。すべての名前はアルファベット順ではありません。そして、翻訳された名前を別の言語で返すフレームワークもあります。 –
私はデータを抽出してからソートします。 –