gpt4 book ai didi

nhibernate 'save' -> 'get' 问题

转载 作者:行者123 更新时间:2023-12-03 18:22:04 25 4
gpt4 key购买 nike

你好,

我正在使用 nhibernate,但在我的网站上有关于用户注册的问题。

当用户想要注册时,我会在数据库中创建新的用户记录,然后系统会立即让用户登录。

这就是问题所在...创建用户记录时我正在使用

NHibernateSession.Save(实体);//不立即将用户对象保存到数据库。它保存在 session 中。

当我想登录用户时,我通过他的用户名加载用户,然后我得到空用户对象。

为什么我得到一个空对象,我该如何让它工作?

谢谢

最佳答案

好的,我刚刚测试了这个:

        ISession session = s.CreateSession();

User user = new User();

user.Number = 122;
user.UserName = "u";
user.Id = 1;

session.Save(user);
User user1 = session.CreateCriteria<User>().Add(Restrictions.Eq("UserName", "u")).UniqueResult<User>();

session.Flush();

首先从 CreateCriteria 执行选择,然后在刷新插入。所以这就是它找不到任何东西的原因。

我还测试了 Get<User>(1)并返回传递给 Save 方法的实体 - 不执行任何查询。

仍然 - 既然实体就在那里,为什么还要查询数据库?

此外,您说您使用 Get 然后说您想通过 UserName 加载 - UserName 是主键吗? Get尝试通过主键加载。

关于nhibernate 'save' -> 'get' 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1286827/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com