2011-12-06 4 views
0

나는 다음과 같은 방법을 가지고 온다. 그 결과, 나는 다음과 같은 오류를 얻고있다 :NHibernate에 SQL 쿼리 XML 결과는 문자열

Unable to cast object of type 'System.String' to type 'System.Xml.XmlElement' 

사람이 내가 이것이들은 XMLElement로 돌아 가야 여기를 놓친 거지 무엇을 말해 줄 수?

답변

0

저장 프로 시저가 XML 문자열을 반환하는 경우,이 같은 뭔가 도움이 될 수 :

public XmlDocument FullSetXML(Guid ReviewUID) 
{ 
    using (ISession session = sessionManager.OpenSession()) 
    { 
     IQuery query = session.CreateSQLQuery("exec rcs.ReviewFullSetXML ?"); 
     query.SetGuid(0, ReviewUID); 
     var xmlString = query.UniqueResult().ToString(); 

     var xmlDoc = XmlDocument(); 
     doc.LoadXml(xmlString); 
     return doc; 
    } 
} 

을 그렇지 않으면 당신이보고 here을, SQL 서버의 XML 데이터 유형을로드해야합니다.
이 경우 SqlCommandSqlDatareader을 NHibernate 객체없이 사용해야합니다. 세션에서 연결 참조를 가져옵니다. 연결 (SqlConnection으로 캐스트해야합니다).

필드를 매핑해야한다면 (0120)으로 보시기 바랍니다. here
"SqlQuery"에서 UniqueResult<..>()으로 사용자 정의 IUserType을 사용할 수있는 경우 결코 시도하지 않았습니다.이 시도는 유용 할 수 있습니다.