2015-02-26 3 views
4
List<object[]> olist = null; 

olist = (_session.CreateQuery("Select pc.Id as Id,pct.DescEn as DescEn,pct.DescAr as DescAr,pc.ContentEn as ContentEn,pc.ContentAr as ContentAr from ProjectCharter pc,ProjectCharterTemplate pct where pct.Id=pc.PRC_PCT_ID and pc.PRC_PRJ_ID=1").List<object[]>()).ToList<object[]>(); 

Это мой запрос, я хочу, чтобы объединить две таблицы и получить выход, , когда я запускаю это дб я получить идеальный answere, , но когда я запускаю его через C# с отображением nhibernate. я получаю ошибки.Как соединить две таблицы в NHibernate

Могу ли я запросить этот способ или есть какой-либо другой способ объединения двух таблиц.

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

+1

При использовании простой SQL, то вы хотите использовать ADO.NET и не NHibernate. nHibernate - это когда вы не хотите сами писать SQL. – Euphoric

+0

@Euphoric Да, я смог запустить IQuery и преобразовать его в Список. –

ответ

3

Это очень просто. Удивительно легко. Проверьте

Таким образом, приведенный выше запрос в QueryOver может выглядеть следующим образом:

// alias for later use 
ProjectCharter project = null; 
ProjectCharterTemplate template = null; 

var list = session 
    .QueryOver<ProjectCharter>(() => project) 
    // the JOIN will replace the WHERE in the CROSS JOIN above 
    // it will be injected by NHibernate based on the mapping 
    // relation project has many-to-one template 
    .JoinQueryOver<ProjectCharterTemplate>(c => c.Templates,() => template) 
    .Select(
     // select some project properties 
     _ => project.ContentEnglish, 
     ... 
     // select some template properties 
     _ => template.DescriptionEnglish, 
    ) 
    .List<object[]>(); 
+0

это ответ – Anil

Смежные вопросы