문제

여러 곳에서 호출하고 싶은 Linq 쿼리가 있습니다.

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

메서드를 만들고 이 코드를 삽입한 다음 호출하려면 어떻게 해야 합니까?

public  ???  GetSomeData()
{
   // my Linq query
}
도움이 되었습니까?

해결책

IQueryable과 IEnumerable이 모두 작동합니다.하지만 유형별 버전인 IQueryable을 사용하고 싶습니다.<> 또는 IEnumerable <>.

따라서 데이터를 보관할 유형을 만들고 싶을 것입니다.

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};
 }

반환하려면 유형이 필요합니다.

대신에 var, 다음을 사용하여 선언 IEnumerable<> 그리고 그 변수를 반환합니다.이를 반복하면 실제로 쿼리가 실행됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top