ServiceStack Ormlite 使用 Select 和 NoLock

ServiceStack Ormlite using Select with NoLock

我有以下简单的 OrmLite select 语句:

SpiderUser lSpiderUser = db.Select<SpiderUser>(
    su => su.WindowsUserName == vWindowsUserName).SingleOrDefault();

(变量'db'的类型为IDbConnection)。

我希望此查询使用 NoLock 运行。 5.7 版的 Ormlite 有 'SqlServerTableHint.NoLock',但我不明白如何在上述查询中包含此提示。

请帮忙...

OrmLite's SqlServerTableHint 仅适用于 table 联接。

您可以使用 Typed SqlExpression 自定义生成的 SQL,例如:

var q = db.From<SpiderUser>()
    .Where(su => su.WindowsUserName == vWindowsUserName)
    .WithSqlFilter(sql => $"{sql} WITH (NOLOCK)");

var lSpiderUser = db.Single(q);