我有这样构建的查询:
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查询似乎与存储过程一样快,因此目标是将这些查询转换为已编译的查询。这是什么语法?
感谢。
答案 0 :(得分: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();
}
在您的存储库中,您的原始方法调用内部函数来获取您正在查找的结果。
希望这会有所帮助 - &gt;如有必要,我可以发布更多代码:)