编译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