c# - 如何仅包含实体的一部分
问题描述
我有这个 linq 查询,它工作得很好。
var items = this._context.History.Where(a => a.ItemId == id).Include(a=> a.AppUser.ApplicationUser).ToList();
但是,有一个问题。包括ApplicationUser
在内是为了获得用户的FirstName
和LastName
。但不需要表格的其余部分。
真正的问题是,由于ApplicationUser
现在在上下文中,一个完全不同的不包括 的查询最终会ApplicationUser
被ApplicationUser
填充并发送到客户端(超出安全性)。
this.DbSet.Where(a => a.EntityStatusId == (int)EntityStatus.Enum.Active && a.ItemId == entityId ).Include(a=> a.AppUser).ToList();
但我真正需要的是ApplicationUser.FirstName
, 和ApplicationUser.LastName
这张桌子。
我能想到的唯一解决方法是Context()
为一个查询创建一个新的,但这似乎违反了正在使用的 DI 模式。不需要保存任何更改,它只是获取数据以供显示。
解决方案
推荐阅读
- python - 区分两个数据集
- python - 计算方式数
- python - 在输出上创建一个字符串。输出是一个 NoneType 对象
- node.js - 使用 NodeJS 或 Electron 在 Microsoft 商店中发布 Windows 服务
- python - 值返回为 0
- python-3.x - 从python中的父方法创建子类
- javascript - 如何将令牌传递给 JQGrid 中的请求标头
- macos - Rust 地狱般的网络服务器有 7-40k rps - 为什么?
- google-chrome-extension - 如何在 manifest.json Chrome 扩展中同时使用主题和内容脚本?
- java - Spring mvc 复选框选择的值不能作为字符串读取(值是韩语)