如何在实体框架中仅显示表的特定列?

时间:2011-11-25 08:46:03

标签: wcf entity-framework

如何在实体框架中显示表的某些特定列而不是整个表。

using (DataEntities cxt = new DataEntities())
{
    notes note = cxt.notes.Where(no => no.id == accID).SingleOrDefault();
    return notes;
}

2 个答案:

答案 0 :(得分:2)

为此,我建议您使用ViewModel,如下所示: -

notes note = cxt.notes.SingleOrDefault(no => no.id == accID);
var model = new YourViewModel // Your viewModel class
            {
                   ID = note.ID,
                   PropertyOne = note.PropertyOne, // your ViewModel Property
                   PropertyTwo = note.PropertyTwo
            };

答案 1 :(得分:0)

您可以使用QueryView执行此操作。 这意味着直接在XML中编辑模型,因为没有设计者对此的支持,但是你将得到一个独立的实体,其字段少于原始实体。

<强>优点:

  • 然后,您可以直接查询此截断实体的数据库(您只需从数据库中获取所需的字段 - 无需从数据库中获取整个实体并将其转换为代码)
  • 在您希望将此截断的实体发送到的情况下,这是很好的 客户        使用WCF来最小化流量(例如,在客户端上构建大型列表时)        基本上只需要名称和ID,没有其他特定的实体        信息)。

<强>缺点:

  • 这个基于QueryView的实体是只读的。为了使其可写,您必须自己添加r / w功能