这里我正在检索项目并包括项目的创建者。目标是仅包含创建者的名字和姓氏,而不是整个用户模型。
var items = _db.Items.Include("Creator")
项目模型具有Creator
作为导航属性,如下所示:
public User Creator { get; set; }
它工作正常,但它加载整个用户模型,当我真正想要名字和姓氏时。
如何指定我只想要从用户模型返回的特定属性?
答案 0 :(得分:1)
使用Include
无法做到这一点。您可以改为使用Select
:
var items = _db.Items.Select(i => new { Item = i, Creator = new { i.Creator.FirstName, i.Creator.LastName } });
<强>更新强>
如果您需要将该查询作为方法结果返回,则必须创建一个可以保存结果的类:
public class ItemWithCreatorNames
{
public Item Item { get; set; }
public string CreatorFirstName { get; set; }
public string CreatorLastName { get; set; }
}
var items = _db.Items.Select(i => new ItemWithCreatorNames { Item = i, CreatorFirstName = i.Creator.FirstName, CreatorLastName = i.Creator.LastName });