首页 > 解决方案 > 如何仅包含实体的一部分

问题描述

我有这个 linq 查询,它工作得很好。

 var items  = this._context.History.Where(a => a.ItemId == id).Include(a=> a.AppUser.ApplicationUser).ToList();

但是,有一个问题。包括ApplicationUser在内是为了获得用户的FirstNameLastName。但不需要表格的其余部分。

真正的问题是,由于ApplicationUser现在在上下文中,一个完全不同的不包括 的查询最终会ApplicationUserApplicationUser填充并发送到客户端(超出安全性)。

 this.DbSet.Where(a => a.EntityStatusId == (int)EntityStatus.Enum.Active && a.ItemId == entityId ).Include(a=> a.AppUser).ToList();

但我真正需要的是ApplicationUser.FirstName, 和ApplicationUser.LastName这张桌子。

我能想到的唯一解决方法是Context()为一个查询创建一个新的,但这似乎违反了正在使用的 DI 模式。不需要保存任何更改,它只是获取数据以供显示。

标签: c#entity-frameworkasp.net-coreentity-framework-core

解决方案


推荐阅读