Гость
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Linq join isnull / 10 сообщений из 10, страница 1 из 1
21.01.2016, 10:37
    #39152029
Алексей Кр
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Linq join isnull
Оптимизировали t-sql запрос, добавлен join вида:
inner join t_Person on personid = isnull([t1].[rf_personid], [t2].[rf_personid ])

Вопрос, как преобразовать к linq ?
...
Рейтинг: 0 / 0
21.01.2016, 10:46
    #39152039
Алексей К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Linq join isnull
Код: c#
1.
2.
3.
...
let id = t1.rf_personid ?? t2.rf_personid
join p in Db.t_Person on id equals p.personid
...
Рейтинг: 0 / 0
21.01.2016, 10:51
    #39152047
Алексей Кр
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Linq join isnull
Ругается на t1.rf_personid
Left operand of the '??' operator shoul be of reference or nullable type
Error 154 Operator '??' cannot be applied to operands of type 'int' and 'int'
...
Рейтинг: 0 / 0
21.01.2016, 11:16
    #39152083
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Linq join isnull
а что непонятно в сообщении об ошибке?
если у тебя поле t1.rf_personid типа int, то проверять его на null не нужно, потому что бессмысленно
...
Рейтинг: 0 / 0
21.01.2016, 11:20
    #39152088
Алексей Кр
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Linq join isnull
через join в итоге могут быть и null вот в чем весь секрет... поле то собственное тип int а джойном может данных не быть и будет null
...
Рейтинг: 0 / 0
21.01.2016, 11:23
    #39152098
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Linq join isnull
Алексей Крвот в чем весь секретпричем тут join?
у тебя ошибка в первой строке
поле int НЕ МОЖЕТ НИКОГДА быть null и оператор ?? к нему неприменим
...
Рейтинг: 0 / 0
21.01.2016, 11:25
    #39152100
Алексей Кр
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Linq join isnull
повторюсь, как тогда сделать в linq работающий t-sql

Оптимизировали t-sql запрос, добавлен join вида:
inner join t_Person on personid = isnull([t1].[rf_personid], [t2].[rf_personid ])

Вопрос, как преобразовать к linq ?
...
Рейтинг: 0 / 0
21.01.2016, 11:27
    #39152104
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Linq join isnull
это значит, что ты ошибся где-то раньше - до join-а

ты объявил поле t1.rf_personid как int, а надо как int?
...
Рейтинг: 0 / 0
21.01.2016, 11:29
    #39152106
Алексей Кр
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Linq join isnull
как преобразовать t-sql в linq
...
Рейтинг: 0 / 0
21.01.2016, 11:30
    #39152109
Алексей К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Linq join isnull
Алексей Крповторюсь, как тогда сделать в linq работающий t-sql

Оптимизировали t-sql запрос, добавлен join вида:
inner join t_Person on personid = isnull([t1].[rf_personid], [t2].[rf_personid ])

Вопрос, как преобразовать к linq ?Ну там же написано, что поле rf_personid должно иметь тип int? , а не int как в твоём коде.
...
Рейтинг: 0 / 0
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Linq join isnull / 10 сообщений из 10, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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