NHibernate .NET для ORACLE 10g «не удалось выполнить запрос» - PullRequest
1 голос
/ 08 января 2011

это мой код

Я хочу знать, хотите не так?

public IList listdataserviceplan(String custid)
{
    using (ISession session = NHibernateHelper.OpenSession())
    {
        string query = ” select a.ServicePlanId as ServicePlanId ,
                                a.ServiceDetail as ServiceDetail,”
            + ” a.DateServiceFix as DateServiceFix ,a.DateService as DateService,”
            + ” a.CaseNotSupport as CaseNotSupport ,a.ServiceChangeName as ServiceChangeName,”
            + ” a.DateServiceNew as DateServiceNew ,a.MaterialChange as MaterialChange,”
            + ” a.ServiceGuarantee as ServiceGuarantee ,a.ServiceMaintenance as ServiceMaintenance,”
            + ” a.ServiceCharge as ServiceCharge”
            + ” from BicIsu.Core.Domain.ServicePlan as a”
            + ” where 1=1″
            + ” and a.CustId = ‘” + custid + “‘ ”
            + ” order by a.ServicePlanId”;

        var cons = session.CreateQuery(query).List();
        return cons;
    }
}

Ответы [ 2 ]

0 голосов
/ 08 января 2011

, вероятно, не лучший способ написать запрос hql. Почему вы не используете класс StringBuilder? это будет что-то вроде этого:

var hqlQuery= new StringBuilder();
hqlQuery.Append("select a from ClassA");
hqlQuery.AppendFormat("where a.Id={0}",idVal);

return session.List<ClassA>(hqlQuery.toString());

Я знаю, что это не ответ. но определенно поможет вам с кодом.

Теперь по поводу вашей проблемы. Какая ошибка, которую вы получаете. Этот запрос даже запущен или вы получаете исключение?

0 голосов
/ 08 января 2011

Я не вижу ошибки, но держу пари, что это как-то связано с этими сверхсложными волшебными строками. Попробуйте:

string query = @"select a.ServicePlanId, 
                        a.ServiceDetail, 
                        a.DateServiceFix, 
                        a.DateService, 
                        a.CaseNotSupport, 
                        a.ServiceChangeName, 
                        a.DateServiceNew, 
                        a.MaterialChange, 
                        a.ServiceGuarantee, 
                        a.ServiceMaintenance, 
                        a.ServiceCharge  
                from  ServicePlan as a 
                where 1=1 
                and   a.CustId = :custId 
                order by a.ServicePlanId";

var result = session.CreateQuery(query)
                    .SetParameter("custId", custid)
                    .List();

К вашему сведению, Специальное отображение с помощью NHibernate.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...