0

我有一些具有大约 20 个属性的大型实体,在某些情况下,我需要从中创建 DropDownLists。在 SelectList 中,您仅使用查询返回的原始 20 个属性中的 2 个属性(ID 和名称)。

我正在使用这种方法来加载它:

new SelectList(db.Contacts.AsNoTracking().Where(x => x.idTenant == CurrentTenantID), "ContactId", "Name");

这工作正常,但联系人数据库集上的查询显然返回所有列。我应该如何将列从 20 缩小到 2 以便对数据库进行更轻松的查询?

我知道我可以仅针对这种情况在数据库中执行存储过程或视图,并将其用于 DropDownList 填充,但是......还有另一种直接使用实体框架的方法吗?

这发生在几个实体中,而不仅仅是联系人,所以我希望有一个明确的策略来处理这种场景。

4

1 回答 1

2

您可以.Select在查询中添加一个:

new SelectList(db.Contacts.AsNoTracking()
    .Where(x => x.idTenant == CurrentTenantID)
    .Select(x => new { x.ContactId, x.Name })
    , "ContactId", "Name");
于 2013-08-21T13:19:07.373 回答