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

Надо вернуть размер в переменную
Подскажите, как сделать вот так
Код: 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
LINQ - вернуть 1 поле int ?
    #39862178
RegisteredUser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кажись получилось
Код: c#
1.
int size = dbContext.Calc.Where(p => p.SizeType == _sizeType).FirstOrDefault().SizeDim;


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

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

Да и используй Async, а то вроде поначалу написал await, а потом выкинул...
...
Рейтинг: 0 / 0
LINQ - вернуть 1 поле int ?
    #39862195
RegisteredUser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
LINQ - вернуть 1 поле int ?
    #39862202
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Потому что тебе нужно разобраться, как работает Linq, я ж говорил - читай.

При составлении запроса тебе await не нужен, он нужен при выполнении (материализации) запроса. Материализацией будет ToList, FirstOrDefault и т.п. А в случае await - те же методы с суффиксом Async
...
Рейтинг: 0 / 0
LINQ - вернуть 1 поле int ?
    #39862243
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
То есть в твоем случае (если не понял)
Код: 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
LINQ - вернуть 1 поле int ?
    #39862410
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProToList

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

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


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