#c# #asp.net #.net #entity-framework #entity-framework-core
Вопрос:
У меня есть запрос с использованием Entity Framework, который выглядит следующим образом:
var CompanyDetail = await _dbContext.tablename
.Where(cu => cu.Id == newId)
.Select(cu => cu.Carrir)
.FirstOrDefaultAsync();
Он отлично работает и отлично возвращает все детали.
Теперь я хочу добавить новое значение в этот результирующий набор, который я получаю:
var status = await _documentSettingService.IsValid();
Это приведенное выше значение не хранится в этой текущей таблице, поэтому я хочу, чтобы, когда эта функция вернет данные, она добавила это приведенное выше значение в результирующий набор Entity Framework.
У меня есть два вопроса :
- Возможно это или нет, и если да — как это сделать?
- Хорошо ли это с точки зрения практики ?
Спасибо
Комментарии:
1. Обычно вы создадите новый класс (DTO), который будет содержать все необходимые поля и копировать данные туда.
2. Не могли бы вы, пожалуйста, объяснить, что вы хотите — от статуса к хвостам компаний или от хвостов компаний к статусу. И я думаю, было бы неплохо, если бы вы показали все характеристики обоих классов — статус и сведения о компании.
3. пожалуйста , сначала перейдите
var CompanyDetail = await _dbContext.tablename.Where(cu => cu.Id == newId).Select(cu => cu.Carrir).FirstOrDefaultAsync();
вvar CompanyDetail = await _dbContext.tablename.FirstOrDefaultAsync(cu => cu.Id == newId).Select(cu => cu.Carrir);
, а затем, как сказал Серж : объясните, что именно вы хотите .4. Прямо сейчас я получаю данные из запроса select, и они поступают на основе класса модели, но в этом результате я хочу добавить новое значение этого статуса..но я не хочу добавлять какой-либо новый атрибут в класс модели..без добавления в модель я хочу добавить значение статуса в результат запроса.
Ответ №1:
Как сказал Гуру Строн, вы должны создать новый класс (DTO)
с CompanyDetail
Status
полями и.
Если вы не хотите создавать новый класс, есть несколько альтернативных способов
(string, bool) result = (CompanyDetail, status);
или с помощью anonymous
объекта типа
var result = new { CompanyDetailResult = CompanyDetail, StatusResult = status};