powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / NHibernate 3.0 как сделать join к sql-view по двум полям на которых нет "References"
10 сообщений из 10, страница 1 из 1
NHibernate 3.0 как сделать join к sql-view по двум полям на которых нет "References"
    #37177497
Var79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть такой запрос
Код: plaintext
1.
2.
3.
4.
5.
6.
  select mc.Id, vwc.EndDateValue
  from mc 
  left join mcde on mc.id = mcde.mcId and mcde.IsGeneral =  1 
  left join cdl on cdl.id = mc.cdlId
  left join c on c.id = cdl.cId
  left join vwc on vwc.StartDateValue = mcde.[date] and vwc.[EndWorkIndex]  = vwc.[StartWorkIndex] + c.DelayUnderContract
   where c.IsBankDays =  1 
все "таблицы" замаплены, в том числе sql-view " vwc "

vwc не имеет никаких ссылок с другими таблицами, но хочется что бы работал join
vwc on vwc.StartDateValue = mcde.[date] and vwc.[EndWorkIndex] = vwc.[StartWorkIndex] + c.DelayUnderContract

вопрос, как написать ICriteria что бы приджойнить VIEW без внешних ключей, по двум полям, из двух разных таблиц?
...
Рейтинг: 0 / 0
NHibernate 3.0 как сделать join к sql-view по двум полям на которых нет "References"
    #37179240
Var79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на HQL это выглядит так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
SELECT mc.Id, CASE WHEN c.IsBankDays= 1  THEN vwc.EndDateValue ELSE DATEADD(DAY, c.DelayUnderContract, COALESCE(mcde.DelayStartDate, mcde.Date)) END
                FROM mc mc
                join mc.mcde mcde with mcde.IsGeneral =  1 
                join mc.cdl cdl
                join cdl.Contract c
                , vwc vwc
WHERE
    vwc.StartDateValue = COALESCE(mcde.DelayStartDate, mcde.Date)
    and vwc.EndWorkIndex  = vwc.StartWorkIndex + c.DelayUnderContract + case when vwc.StartIsWorkday= 0  then - 1  else  0  end

как переписать на критерии?

как можно догадаться vwc не имеет привязки ни к какой сущности.
Но ее нужно джойнить по полям из 2х разных таблиц (по mcde.Date и по c.DelayUnderContract)
...
Рейтинг: 0 / 0
NHibernate 3.0 как сделать join к sql-view по двум полям на которых нет "References"
    #37179246
Var79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
конечно это не идентичные запросы, на HQL больше логики
...
Рейтинг: 0 / 0
NHibernate 3.0 как сделать join к sql-view по двум полям на которых нет "References"
    #37179500
Var79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Упрощаем задачу, как на ICriteria сделать в условии операцию сложения " + "?
Код: plaintext
c.test = c.DelayUnderContract + c.Id
...
Рейтинг: 0 / 0
NHibernate 3.0 как сделать join к sql-view по двум полям на которых нет "References"
    #37179505
Var79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну или дайте плз ссылку на хороший форум по NHibernate
...
Рейтинг: 0 / 0
NHibernate 3.0 как сделать join к sql-view по двум полям на которых нет "References"
    #37180005
Var79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Var79Упрощаем задачу, как на ICriteria сделать в условии операцию сложения " + "?
Код: plaintext
c.test = c.DelayUnderContract + c.Id


Возможно как то так:
Код: plaintext
1.
2.
3.
Projections.SqlFunction(new VarArgsSQLFunction("(", "+", ")"), NHibernateUtil.Decimal,
                                Projections.Property("MC.ARA"), Projections.Property("R.FPS")
                            )
...
Рейтинг: 0 / 0
NHibernate 3.0 как сделать join к sql-view по двум полям на которых нет "References"
    #37180427
FSou1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Var79,

stackoverflow?
...
Рейтинг: 0 / 0
NHibernate 3.0 как сделать join к sql-view по двум полям на которых нет "References"
    #37187150
barser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
.Add(Expression.Sql(/* ... */)) ?
...
Рейтинг: 0 / 0
NHibernate 3.0 как сделать join к sql-view по двум полям на которых нет "References"
    #37191497
Var79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
завтра посмотрю, а sql это SQL который например, для Oracle или для MS SQL или это HQL?
правда не пойму какой синтаксис должен быть
...
Рейтинг: 0 / 0
NHibernate 3.0 как сделать join к sql-view по двум полям на которых нет "References"
    #37192845
barser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Var79, SQL - это именно SQL. С небольшими дополнительными возможностями для удобства.

Вот например:
Код: plaintext
1.
2.
3.
4.
5.
var query = NHibernateSession.Current
    .CreateCriteria(typeof (Person))
    .AddOrder(Order.Asc("Id"));
/* ... */
query.Add(Expression.Sql("{alias}.Fk_Contragent like ?", contragentId, NHibernateUtil.String));

FK_Contragent - это название столбца в таблице БД
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / NHibernate 3.0 как сделать join к sql-view по двум полям на которых нет "References"
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]