2011-01-14 2 views
0

SQL 쿼리에 LINQ를 컴파일하는 것은 :내가 같이 내장되어 질문이

public static List<MyObjectModel> GetData (int MyParam) 
{ 

using (DataModel MyModelDC = new DataModel()) 

{ var MyQuery = from.... 
       select MyObjectModel { ...} 
} 

return new List<MyObjectModel> (MyQuery) 

} 
} 

는 LINQ - 투 - SQL 쿼리를 빠르게 저장 프로 시저 그래서 목표는 변환하는 것입니다 약이다 컴파일 사용하는 것 같다 이러한 쿼리는 컴파일 된 쿼리에 포함됩니다. 이 구문은 무엇입니까?

감사합니다.

답변

1
당신의 DataContext의 내부 같은

넣어 뭔가 (또는 귀하의 경우 귀하의 "DataModel이"에서) :

private static Func<DataModel, int, MyObjectModel> _getObjectModelById = 
    CompiledQuery.Compile<DataModel, int, MyObjectModel>(
     (dataModel, myParam) => 
      dataModel.PersonDtos.where(c => c.ObjectModelId == myParam).FirstOrDefault() 
      ); 

다음과 같이 호출 거기에 따른 방법으로 추가 :

internal List<MyObjectModel> GetObjectModel(int myParam) 
{ 
    var results = _getObjectModelById(this, myParam); 
    return results.SingleOrDefault(); 
} 

을의 내부 원래 메소드가 내부 함수를 호출하여 찾고있는 결과를 얻는 저장소.

희망이 도움이 -> 내가 내 모든 쿼리가 다른 네임 스페이스에 필요한 경우 :

+0

더 많은 코드를 게시 할 수 있습니다. 코드의 맨 위 부분은 어디에 있습니까? – frenchie

+0

상단 섹션은 datacontext를 나타내는 linq2sql 클래스 내부에 있습니다 ("ObjectModel"이라고 생각합니다). 실제로 C# 코드에서 SQL 데이터베이스를 나타내는 클래스입니다. –

+0

미안하지만, 당신이 "DataModel"이라고 부르는 것 같아요. –

관련 문제