我想从多个地方调用Linq查询:
var myData = from a in db.MyTable
where a.MyValue == "A"
select new {
a.Key,
a.MyValue
};
如何创建方法,将此代码放入其中,然后调用它?
public ??? GetSomeData()
{
// my Linq query
}
答案 0 :(得分:10)
IQueryable和IEnumerable都有效。但您想使用特定类型的版本,IQueryable <
T >
或IEnumerable <
T >
。
因此,您需要创建一个类型来保存数据。
var myData = from a in db.MyTable
where a.MyValue == "A"
select new MyType
{
Key = a.Key,
Value = a.MyValue
};
答案 1 :(得分:8)
答案 2 :(得分:3)
通用方法应该给你智能感知:
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};
}
答案 3 :(得分:2)
如果您想返回,则需要一个类型。
而不是var
,使用IEnumerable<>
声明并返回该变量。迭代它实际上执行查询。