Запрос столбца xml из nhibernate 3.0 - PullRequest
0 голосов
/ 06 октября 2011

У меня есть столбец xml в одной из моих сущностей
Мне удалось использовать тип пользователя и сопоставить этот столбец со свойством в моей сущности типа XmlElement.
Мне было интересно, могу ли я запросить этот объект изкод, как я делаю sql с QueryOver?
Я нашел что-то вроде этого здесь .Но я не понимаю, как именно его запросить

Заранее спасибо

1 Ответ

0 голосов
/ 14 октября 2011

ну вот как я это делал вечно
не самый подходящий код
но все равно ...
Я объединил запрос с ограничением SQL, используя свойство базового критерия
Мне нужно было использовать псевдоним для ограничения из-за строки в исходном коде nhibernate, которая ищет псевдоним и получает подстроку с начала псевдонима
Если вы не предоставите псевдоним, очевидно, он не сможет

if (tagIds != null && tagIds.Count > 0)
            {
                StringBuilder attrXPath = new StringBuilder();

                for(int counter = 0;counter<tagIds.Count();counter++)
                {
                    attrXPath.Append("@id=\"");
                    attrXPath.Append(tagIds[counter]);
                    attrXPath.Append("\"");
                    if(counter < tagIds.Count() - 1)
                        attrXPath.Append(" or ");
                }

                query.UnderlyingCriteria
                    .Add(Restrictions.Eq(Projections.SqlProjection("tags.exist('/tags/tag[" + attrXPath.ToString() + "]') as XmlRestriction",
                                                                    new string[] { "XmlRestriction" },
                                                                    new IType[] { NHibernateUtil.String}), 1));
            }
...