【问题标题】:Add new value to query result为查询结果添加新值
【发布时间】:2021-10-10 16:26:43
【问题描述】:

我有一个使用实体框架的查询,如下所示:

var CompanyDetail = await _dbContext.tablename
                                    .Where(cu => cu.Id == newId)
                                    .Select(cu => cu.Carrir)
                                    .FirstOrDefaultAsync();

它工作正常并且完美地返回了所有细节。

现在我想为我得到的这个结果集添加新值:

var status = await _documentSettingService.IsValid();

这个上面的值没有存储在这个当前表中,所以我想要的是当这个函数返回数据时,它应该在那个实体框架结果集中添加这个上面的值。

我有两个问题:

  1. 有没有可能,如果有 - 怎么做?
  2. 在实践方面好不好?

谢谢

【问题讨论】:

  • 通常您将创建一个新类 (DTO),其中包含所有需要的字段并在那里复制数据。
  • 你能解释一下你想要什么 - 到 companydetails 或 companydetails 到 status。而且我认为如果您显示这两个类的所有属性会很好 - 状态和公司详细信息。
  • 请先将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);,然后正如Serge 所说:解释你到底想要什么。
  • 现在我正在从选择查询中获取数据,它基于模型类,但在这个结果中我想添加新的状态值..但我不想添加任何新的模型类中的属性..不添加模型我想在查询结果中添加状态值。

标签: c# asp.net .net entity-framework entity-framework-core


【解决方案1】:

就像 Guru Stron 所说,您应该使用 CompanyDetail 和 Status 字段创建新类 (DTO)。

如果你不想创建一个新的类,有一些替代方法

(string, bool) result = (CompanyDetail, status);

或使用anonymous 类型对象

var result = new { CompanyDetailResult = CompanyDetail, StatusResult = status};

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-18
    • 2017-07-03
    相关资源
    最近更新 更多