Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
编译linq到sql查询_Linq_Linq To Sql - Fatal编程技术网

编译linq到sql查询

编译linq到sql查询,linq,linq-to-sql,Linq,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) } } inte

我有这样的查询:

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

using (DataModel MyModelDC = new DataModel())

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

return new List<MyObjectModel> (MyQuery)

}
}
internal List<MyObjectModel> GetObjectModel(int myParam)
{
     var results = _getObjectModelById(this, myParam);
     return results.SingleOrDefault();
}
似乎使用编译后的linq to sql查询的速度与存储过程差不多,因此目标是将这些查询转换为编译后的查询。这个的语法是什么


谢谢。

在您的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,如下所示:

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

using (DataModel MyModelDC = new DataModel())

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

return new List<MyObjectModel> (MyQuery)

}
}
internal List<MyObjectModel> GetObjectModel(int myParam)
{
     var results = _getObjectModelById(this, myParam);
     return results.SingleOrDefault();
}
在原始方法所在的存储库中,调用内部函数以获得所需的结果


希望这有帮助->如果需要,我可以发布更多代码:

我所有的查询都在不同的名称空间中。代码的顶部部分将放在哪里?顶部部分位于表示datacontext的linq2sql类的内部,我认为您将其称为ObjectModel。实际上用C代码表示sql数据库的类。对不起,我想您称它为DataModel