13

複数の場所から呼び出したい Linq クエリがあります。

var myData = from a in db.MyTable
             where a.MyValue == "A"
             select new  {
                            a.Key,
                            a.MyValue
                          };

メソッドを作成し、このコードをその中に入れて、それを呼び出すにはどうすればよいですか?

public  ???  GetSomeData()
{
   // my Linq query
}
4

4 に答える 4

10

IQueryableとIEnumerableはどちらも機能します。ただし、タイプ固有のバージョンであるIQueryableTまたはIEnumerableTを使用する必要<>あり<ます>

したがって、データを保持するための型を作成する必要があります。

var myData = from a in db.MyTable
             where a.MyValue == "A"
             select new MyType
             {
                 Key = a.Key,
                 Value = a.MyValue
             };
于 2008-09-10T20:32:44.787 に答える
8

IQueryable

したがって、メソッド宣言は次のようになります

public IQueryable GetSomeData()
于 2008-09-10T19:35:44.333 に答える
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};
 }
于 2008-09-10T20:41:30.960 に答える
2

戻りたい場合は、型が必要です。

の代わりにvar、その変数を使用して宣言しIEnumerable<>て返します。それを反復すると、実際にクエリが実行されます。

于 2008-09-10T19:38:52.030 に答える