c# - 如何从外键获取值以使用关联值填充列表?
问题描述
我的 ViewModel 中有以下列表:
public List<Objective> Objectives { get; set; }
我还有以下存储库方法:
public async Task<List<Objective>> GetAll()
{
return await _context.Objective.ToListAsync();
}
最后,我在返回 ViewModel 的服务中有以下方法:
public async Task<ObjectivesViewModel> GetViewModel()
{
var viewModel = new ObjectivesViewModel()
{
Objectives = await _objectivesRepository.GetAll()
};
return viewModel;
}
所有这些都按预期工作。
我的目标模型如下所示:
public string ReferenceCode { get; set; }
public int TeamId { get; set; }
public string Description { get; set; )
TeamId 模型如下所示:
public int TeamId { get; set; }
public string TeamName { get; set; }
就目前而言,存储库应返回所有内容,但是我想做的是添加与 TeamId 关联的 TeamName。我将如何完成或接近这一点?
解决方案
制作 TeamId 外键,并访问团队导航属性 Objective 模型:
public string ReferenceCode { get; set; }
public int TeamId { get; set; }
[ForeignKey("TeamId ")]
public Team Team { set; get; }
public string Description { get; set; )
现在您可以访问 teamId 或 teamName
Objective obj = _context.Objective.FirstOrDefault();
obj.Team.TeamName
推荐阅读
- apache-spark - 仅覆盖分区 spark 数据集中的一些分区
- php - 挂钩注册表prestashop 1.7
- html - 使图像适合响应大小的 td 的高度
- actions-on-google - 在 V2 Dialogflow 中使用 express 获取正文请求参数
- c# - 核心 2.1 signalR 成功连接但客户端为空
- python - Alien 类没有 rect 属性
- python - DataFrame 存储 n 维列表
- r - R:根据不同长度的向量对df行进行排序
- java - Springboot @Scheduled 暂停
- c# - WebForms Repeater,设置文本框属性作为保存时的标识符