C# 在nhibernate中提交
我为NHibernate创建了一个简单的测试,但它并不正常。有人知道下面这个问题吗 PosDAL实例的标识符。用户从4更改为 (System.Int32)到0(System.Int32) 我正在使用SQLServer2008。数据库中Id为主键且自动增加1的用户表。在db中,我手动添加简单的行,如:用户名、电子邮件、全名等。身份证号码是4。但它不起作用。我删除了那一行,程序正常运行 我在业务逻辑层的功能:C# 在nhibernate中提交,c#,sql,nhibernate,C#,Sql,Nhibernate,我为NHibernate创建了一个简单的测试,但它并不正常。有人知道下面这个问题吗 PosDAL实例的标识符。用户从4更改为 (System.Int32)到0(System.Int32) 我正在使用SQLServer2008。数据库中Id为主键且自动增加1的用户表。在db中,我手动添加简单的行,如:用户名、电子邮件、全名等。身份证号码是4。但它不起作用。我删除了那一行,程序正常运行 我在业务逻辑层的功能: public bool CheckLogin(string sUsername, str
public bool CheckLogin(string sUsername, string sEnCodePassw)
{
using(ISession session = SessionFactory.OpenSession())
using (ITransaction tx = session.BeginTransaction())
{
IList oUser =
session
.CreateSQLQuery("SELECT * FROM USERS WHERE U_USERNAME = ?")
.AddEntity(typeof(Users))
.SetString(0, sUsername)
.List();
tx.Commit();
return false;
}
}
select不需要事务,也不需要提交任何内容,因为您没有修改任何数据。所以,试着摆脱交易
using(ISession session = SessionFactory.OpenSession())
{
IList oUser =
session
.CreateSQLQuery("SELECT * FROM USERS WHERE U_USERNAME = ?")
.AddEntity(typeof(Users))
.SetString(0, sUsername)
.List();
return false;
}
还要确保您的代码逻辑实际执行了它应该执行的操作。当前,您的代码将始终返回false,您应该将return语句更改为以下内容
return oUser != null && oUser.Count > 0;
谢谢你的推荐。我有另一个想法,但它返回false:
返回oUser.Contains(sEnCodePassw)代码>
有什么问题吗?酷…我没有注意到你通过提问编辑了你的第一条评论这里是我的答案:I change-IList-oUser=…List();到IList oUser=....列表()代码>
User oObject=new User()代码>
oObject=oUser[0]代码>
返回(oObject!=null&&oObject.Password=sEncodePassw)代码>