Гость
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / LINQ - вернуть 1 поле int ? / 10 сообщений из 10, страница 1 из 1
16.09.2019, 10:50
    #39862174
RegisteredUser
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LINQ - вернуть 1 поле int ?
Коллеги!

Надо вернуть размер в переменную
Подскажите, как сделать вот так
Код: c#
1.
int size = await dbContext.Calc.Select(p => new p.SizeDim .....);



из вот этого sql

Код: sql
1.
2.
3.
  SELECT  [SizeDim]
  FROM [dbo].[Calc] 
  WHERE [SizeType] = 'XL'
...
Рейтинг: 0 / 0
16.09.2019, 11:00
    #39862178
RegisteredUser
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LINQ - вернуть 1 поле int ?
Кажись получилось
Код: c#
1.
int size = dbContext.Calc.Where(p => p.SizeType == _sizeType).FirstOrDefault().SizeDim;


спаисбо
...
Рейтинг: 0 / 0
16.09.2019, 11:04
    #39862183
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LINQ - вернуть 1 поле int ?
RegisteredUser
Код: c#
1.
FirstOrDefault().SizeDim;

если пишешь FirstOrDefault, учитывай возможность возврата Default. Либо пиши просто First, чтобы всем было понятно, что ты не ожидаешь отсутствия записи в БД.

Да и используй Async, а то вроде поначалу написал await, а потом выкинул...
...
Рейтинг: 0 / 0
16.09.2019, 11:46
    #39862195
RegisteredUser
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LINQ - вернуть 1 поле int ?
Shocker.ProRegisteredUser
Код: c#
1.
FirstOrDefault().SizeDim;

если пишешь FirstOrDefault, учитывай возможность возврата Default. Либо пиши просто First, чтобы всем было понятно, что ты не ожидаешь отсутствия записи в БД.

Да и используй Async, а то вроде поначалу написал await, а потом выкинул...

если оставить await, то получаем

Error CS1061
'int' does not contain a definition for 'GetAwaiter' and no accessible extension method 'GetAwaiter' accepting a first argument of type 'int' could be found (are you missing a using directive or an assembly reference?)
...
Рейтинг: 0 / 0
16.09.2019, 11:57
    #39862202
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LINQ - вернуть 1 поле int ?
Потому что тебе нужно разобраться, как работает Linq, я ж говорил - читай.

При составлении запроса тебе await не нужен, он нужен при выполнении (материализации) запроса. Материализацией будет ToList, FirstOrDefault и т.п. А в случае await - те же методы с суффиксом Async
...
Рейтинг: 0 / 0
16.09.2019, 13:00
    #39862243
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LINQ - вернуть 1 поле int ?
То есть в твоем случае (если не понял)
Код: c#
1.
int size = (await dbContext.Calc.FirstAsync(p => p.SizeType == _sizeType)).SizeDim;

либо
Код: c#
1.
int size = (await dbContext.Calc.FirstOrDefaultAsync(p => p.SizeType == _sizeType))?.SizeDim ?? 0;
...
Рейтинг: 0 / 0
16.09.2019, 16:27
    #39862410
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LINQ - вернуть 1 поле int ?
Shocker.ProToList

Гыворят ToList юзать не тру, над ToArray
...
Рейтинг: 0 / 0
16.09.2019, 17:42
    #39862466
RegisteredUser
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LINQ - вернуть 1 поле int ?
все спасибо - помогло
...
Рейтинг: 0 / 0
17.09.2019, 10:14
    #39862612
ЕвгенийВ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LINQ - вернуть 1 поле int ?
hVosttShocker.ProToList

Гыворят ToList юзать не тру, над ToArray
Почему?
...
Рейтинг: 0 / 0
17.09.2019, 11:19
    #39862675
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LINQ - вернуть 1 поле int ?
Ну типа List - лишняя обертка над тем же массивом. Если тебе нужны readonly-данные, то ToArray достаточно в большинстве случаев.
...
Рейтинг: 0 / 0
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / LINQ - вернуть 1 поле int ? / 10 сообщений из 10, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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