составление запроса linq to sql - PullRequest
0 голосов
/ 14 января 2011

У меня есть запросы, которые построены следующим образом:

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

using (DataModel MyModelDC = new DataModel())

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

return new List<MyObjectModel> (MyQuery)

}
}

Кажется, что использование скомпилированных запросов linq-to-sql примерно так же быстро, как хранимые процедуры, и поэтому цель состоит в том, чтобы преобразовать эти запросы в скомпилированныезапросы.Какой синтаксис для этого?

Спасибо.

1 Ответ

1 голос
/ 14 января 2011

Поместите что-то вроде этого внутри вашего 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();
}

Внутри вашего хранилища, где ваш исходный метод вызывал внутреннюю функцию, чтобы получить результат, который вы ищете.

Надеюсь, это поможет -> Я могу выложить больше кода, если необходимо:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...