2011-01-14 75 views
0

我有內置這樣的疑問:編譯的LINQ to SQL查詢

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() 
      ); 

在裏面再加入amethod方法調用它是這樣的:

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

內的你的原始方法的庫調用內部函數來獲得你正在尋找的結果。

希望這有助於 - >我可以張貼如果必要的話:)

+0

我所有的問題都在不同的命名空間更多的代碼。你的代碼的頂部會去哪裏? – frenchie 2011-01-14 17:58:33