Я новичок в nhibernate. тот, который я использую, - это nhibernate 3. вот что мне нужно сделать, выберите пользователя, его идентификатор равен 1. Если этот пользователь не существует, верните его обратно.Nhibernate, нужна помощь для исправления моего запроса на выбор
var selectedUser = session.Query(). Где (u => u.Id == 1) .FirstOrDefault();
if (selectedUser == null)
{
userID = (int)session.Save(user);
}
мой запрос выбора нет.
вот сообщение об ошибке, которое я получил.
could not execute query\r\n[ select TOP (@p0) user0_.Id as Id0_, user0_.Username as Username0_, user0_.Password as Password0_, user0_.CreateDate as CreateDate0_, user0_.Avatar as Avatar0_, user0_.AccountTypeId as AccountT6_0_, user0_.FirstName as FirstName0_, user0_.LastName as LastName0_, user0_.MiddleName as MiddleName0_, user0_.Email as Email0_, user0_.OtherId as OtherId0_ from [User] user0_ where [email protected] ]\r\n Name:p1 - Value:1\r\n[SQL: select TOP (@p0) user0_.Id as Id0_, user0_.Username as Username0_, user0_.Password as Password0_, user0_.CreateDate as CreateDate0_, user0_.Avatar as Avatar0_, user0_.AccountTypeId as AccountT6_0_, user0_.FirstName as FirstName0_, user0_.LastName as LastName0_, user0_.MiddleName as MiddleName0_, user0_.Email as Email0_, user0_.OtherId as OtherId0_ from [User] user0_ where [email protected]]"}
[NHibernate.Exceptions.GenericADOException]: {"could not execute query\r\n[ select TOP (@p0) user0_.Id as Id0_, user0_.Username as Username0_, user0_.Password as Password0_, user0_.CreateDate as CreateDate0_, user0_.Avatar as Avatar0_, user0_.AccountTypeId as AccountT6_0_, user0_.FirstName as FirstName0_, user0_.LastName as LastName0_, user0_.MiddleName as MiddleName0_, user0_.Email as Email0_, user0_.OtherId as OtherId0_ from [User] user0_ where [email protected] ]\r\n Name:p1 - Value:1\r\n[SQL: select TOP (@p0) user0_.Id as Id0_, user0_.Username as Username0_, user0_.Password as Password0_, user0_.CreateDate as CreateDate0_, user0_.Avatar as Avatar0_, user0_.AccountTypeId as AccountT6_0_, user0_.FirstName as FirstName0_, user0_.LastName as LastName0_, user0_.MiddleName as MiddleName0_, user0_.Email as Email0_, user0_.OtherId as OtherId0_ from [User] user0_ where [email protected]]"}
Data: {System.Collections.ListDictionaryInternal}
HelpLink: null
InnerException: {"Invalid object name 'User'."}
Message: "could not execute query\r\n[ select TOP (@p0) user0_.Id as Id0_, user0_.Username as Username0_, user0_.Password as Password0_, user0_.CreateDate as CreateDate0_, user0_.Avatar as Avatar0_, user0_.AccountTypeId as AccountT6_0_, user0_.FirstName as FirstName0_, user0_.LastName as LastName0_, user0_.MiddleName as MiddleName0_, user0_.Email as Email0_, user0_.OtherId as OtherId0_ from [User] user0_ where [email protected] ]\r\n Name:p1 - Value:1\r\n[SQL: select TOP (@p0) user0_.Id as Id0_, user0_.Username as Username0_, user0_.Password as Password0_, user0_.CreateDate as CreateDate0_, user0_.Avatar as Avatar0_, user0_.AccountTypeId as AccountT6_0_, user0_.FirstName as FirstName0_, user0_.LastName as LastName0_, user0_.MiddleName as MiddleName0_, user0_.Email as Email0_, user0_.OtherId as OtherId0_ from [User] user0_ where [email protected]]"
Source: "NHibernate"
StackTrace: " at NHibernate.Loader.Loader.DoList(ISessionImplementor session, QueryParameters queryParameters)\r\n at NHibernate.Loader.Loader.ListIgnoreQueryCache(ISessionImplementor session, QueryParameters queryParameters)\r\n at NHibernate.Loader.Loader.List(ISessionImplementor session, QueryParameters queryParameters, ISet`1 querySpaces, IType[] resultTypes)\r\n at NHibernate.Hql.Ast.ANTLR.Loader.QueryLoader.List(ISessionImplementor session, QueryParameters queryParameters)\r\n at NHibernate.Hql.Ast.ANTLR.QueryTranslatorImpl.List(ISessionImplementor session, QueryParameters queryParameters)\r\n at NHibernate.Engine.Query.HQLQueryPlan.PerformList(QueryParameters queryParameters, ISessionImplementor session, IList results)\r\n at NHibernate.Impl.SessionImpl.List(IQueryExpression queryExpression, QueryParameters queryParameters, IList results)\r\n at NHibernate.Impl.AbstractSessionImpl.List(IQueryExpression queryExpression, QueryParameters parameters)\r\n at NHibernate.Impl.ExpressionQu
eryImpl.List() \ г \ п на NHibernate.Linq.NhQueryProvider.ExecuteQuery (NhLinqExpression nhLinqExpression, IQuery запроса, NhLinqExpression nhQuery) \ г \ п на NHibernate.Linq.NhQueryProvider.Execute (выражение Выражение) \ r \ n в NHibernate.Linq.NhQueryProvider.Execute [TResult] (выражение выражения) \ r \ n в System.Linq.Queryable.FirstOrDefault [TSource] (источник IQueryable'1) \ r \ n в DevelopmentStack.Domain.Repositories .Concrete.NUserRepository.AddUser (Пользователь пользователя) в C: \ code \ net \ DevelopmentStack \ DevelopmentStack.Domain \ Repositories \ Concrete \ NUserRepository.cs: строка 30 " TargetSite: {System.Collections.IList DoList (NHibernate.Engine. ISessionImplementor, NHibernate.Engine.QueryParameters)} >