我有一个表Email
它有一列EmailType
。 EmailType
是nHibernate中的一个枚举,并以int形式存储在数据库中。我有扩展方法也得到名称为电子邮件类型:使用EmailType.PasswordReset.Name()
如何在nHibernate中枚举列枚举类型的显示名称
我获取电子邮件列表创建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;
}
}
}
}
然后我可以得到枚举的名称:
var criteria = session.CreateCriteria<Email>();
criteria.SetFirstResult(startIndex).SetMaxResults(maxResults);
criteria.AddOrder(Order.Asc("EmailType"));
return criteria.List<Email>();
问题在于它使用存储在数据库中的EmailType int对行进行排序。有没有什么办法可以使用EmailType.PasswordReset.Name()
扩展方法EmailType
枚举来枚举枚举的名字?
那么这个作品是巧合:)。我在这里给出的这些名字只是少数几个。所有名字不会按字母顺序排列。然后我也有框架来返回不同语言的翻译名称。 –
我会提取数据,然后对其进行排序。 –