【发布时间】:2021-04-27 20:17:20
【问题描述】:
我有一个表Email,其中有一列EmailType。 EmailType 是 nHibernate 中的枚举,在 DB 中存储为 int。我也有扩展方法来获取电子邮件类型的名称:
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;
}
}
}
}
然后我可以使用EmailType.PasswordReset.Name()获取枚举的名称
我正在通过创建 nHibernate 标准来获取电子邮件列表:
var criteria = session.CreateCriteria<Email>();
criteria.SetFirstResult(startIndex).SetMaxResults(maxResults);
criteria.AddOrder(Order.Asc("EmailType"));
return criteria.List<Email>();
问题在于它使用存储在 DB 中的 EmailType int 对行进行排序。有没有什么办法可以使用EmailType枚举的EmailType.PasswordReset.Name()扩展方法以枚举的名称排序?
【问题讨论】:
标签: c# .net nhibernate