如何使用LINQ设置RecordCount,TOP和NOLOCK?

时间:2009-04-28 13:35:18

标签: linq-to-sql

是否可以编写一个在LINQ中也有NOLOCKTOP的select语句?

如何在查询之前设置RowCount呢?

3 个答案:

答案 0 :(得分:2)

在查询中添加.Take(5)与前5名相同

添加.Skip(5)将开始在第6行返回结果

不确定如何向查询添加NOLOCK。

答案 1 :(得分:2)

这是一篇关于TransactionScope的好文章:

http://www.madprops.org/blog/linq-to-sql-and-nolock-hints/

答案 2 :(得分:1)

TGnat注意到TOP(通过.Take(n))的方法。但是,没有将(NOLOCK)等粒度提示(等)添加到特定表的内置方法。有几种方法可以解决这个问题:

  • 编写存储过程并通过data-context
  • 公开它
  • 编写一个udf并通过data-context
  • 公开它
  • ExecuteQuery与具有NOLOCK
  • 的(参数化)TSQL一起使用

在3中,UDF将得到我的投票:

  • 它不会在C#
  • 中留下文字查询
  • 元数据是强烈定义的
  • 它是可组合的(.Skip / .Take / .Where等)