我怎样才能从一个方法返回一个匿名types?
我有一个Linq查询,我想从多个地方调用:
var myData = from a in db.MyTable where a.MyValue == "A" select new { a.Key, a.MyValue };
我怎样才能创build一个方法,把这个代码放在里面,然后调用它呢?
public ??? GetSomeData() { // my Linq query }
IQueryable和IEnumerable都可以工作。 但是你想使用types特定的版本,IQueryable <
T >
或IEnumerable <
T >
。
所以你要创build一个types来保存数据。
var myData = from a in db.MyTable where a.MyValue == "A" select new MyType { Key = a.Key, Value = a.MyValue };
IQueryable
所以你的方法声明看起来像
public IQueryable GetSomeData()
一个通用的方法应该给你intellisense:
public class MyType {Key{get;set;} Value{get;set}} public IQueryable<T> GetSomeData<T>() where T : MyType, new() { return from a in db.MyTable where a.MyValue == "A" select new T {Key=a.Key,Value=a.MyValue}; }
如果你想返回,你需要一个types。
而不是var
,使用IEnumerable<>
声明并返回该variables。 遍历它实际上执行查询。