Nhibernate 枚举错误

发布于 2024-07-26 20:09:32 字数 724 浏览 1 评论 0原文

这是一个错误吗? 如果我的类在属性“Type”上使用 Int32,则使用 NHibernate.Expression.Example.Create(userExample) 一切正常。

public class User:Person
{

    public virtual String NickName { get; set; }
    public virtual String Password { get; set; }
    public virtual Int32 Type { get; set; }

    public enum UserType
    { 
        Normal = 0,
        Broker = 1
    }

}

但使用枚举条件返回 null:

public class User:Person
{
public virtual String NickName { get; set; }
public virtual String Password { get; set; }
public virtual UserType Type { get; set; }

public enum UserType
{ 
    Normal = 0,
    Broker = 1
}

}

在控制台中,查询显示“Broker”,这就是问题所在,我认为这是 NHibernate 的错误,有什么建议吗?

This is a bug?
Using NHibernate.Expression.Example.Create(userExample) if my class use Int32 on property 'Type' all works fine.

public class User:Person
{

    public virtual String NickName { get; set; }
    public virtual String Password { get; set; }
    public virtual Int32 Type { get; set; }

    public enum UserType
    { 
        Normal = 0,
        Broker = 1
    }

}

but using the enum the critéria return null:

public class User:Person
{
public virtual String NickName { get; set; }
public virtual String Password { get; set; }
public virtual UserType Type { get; set; }

public enum UserType
{ 
    Normal = 0,
    Broker = 1
}

}

In console, query is showing 'Broker', this is the problem, i think that is a error of NHibernate, any sugestions?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

温柔戏命师 2024-08-02 20:09:32

在没有看到您的查询的情况下,您可以尝试此表达式。 我假设您将枚举存储为您的数据库的 int 。

 Expression.Eq("Type",(int) userType);

Without seeing your query, you can try this expression. I assume your storing the enum as an int your db.

 Expression.Eq("Type",(int) userType);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文