1

可能重复:
从没有一个字段的实体框架中检索对象

我正在研究 asp.net mvc。目前我正在使用 EF 4.1 代码优先模型。这里我有记录列表(43)。我的课就像,

public class MyTable
{
public string field1{get; set;}
public string field2{get; set;}
.
.
.
public string field20{get; set;}
} 

我将它们作为 List 之类的列表返回。但我不希望 field20 返回。所以我怎么能跳过我列表中的特定字段。我曾经使用过,

(from m in context.MyTable select new{m.field1,m.field2,...,m.field19}).ToList(); 

它工作得很好。但我希望使用 lambda 表达式语法得到相同的结果,例如

context.MyTable.Skip() or any etc.

如何仅返回要列出的特定字段。

4

1 回答 1

1

好吧,你可以写

context.MyTable.Select(x => new { x.field1, x.field2, ..., x.field19}).ToList();

如果你不想写所有 19 个字段,你可以让你MyTable的类实现IEnumerable

public class MyTable : IEnumerable<object>

public IEnumerator<object> GetEnumerator()
{
    List<object> list = new List<object>();
    list.Add(field1);
    list.Add(field2);
    ...
    list.Add(field20);
    return list.GetEnumerator();
}

System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
{
    return GetEnumerator();
}

然后你可以写

context.MyTable.Select(x => x.Take(19).ToList()).ToList();
于 2012-10-27T12:55:34.600 回答