编译linq到sql查询

时间:2011-01-14 17:28:59

标签: 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)

}
}

使用已编译的linq-to-sql查询似乎与存储过程一样快,因此目标是将这些查询转换为已编译的查询。这是什么语法?

感谢。

1 个答案:

答案 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;如有必要,我可以发布更多代码:)