使用ServiceStack.OrmLite执行原始SQL

y.s*_*hyk 4 sql servicestack ormlite-servicestack

我使用MS SQL Server工作ServiceStack.OrmLite.我想对数据库执行原始SQL,但原始文档包含如何仅使用SELECT语句执行此操作的说明.这对我来说还不够.

我无法找到运行任何简单的方法:

UPDATE table1
SET column1 = 'value1' 
WHERE column2 = value2
Run Code Online (Sandbox Code Playgroud)

使用,例如:

var two = db.Update(@"UPDATE table1
    SET column1 = 'value1' 
    WHERE column2 = value2");
Run Code Online (Sandbox Code Playgroud)

使用db.Update()或db.Update <>运行此表达式会产生不一致的错误,例如

关键字"UPDATE"附近的语法不正确.

我想使用原始sql,因为我的真实UPDATE表达式使用JOIN.

myt*_*thz 6

db.Update用于更新模型或部分模型,如OrmLite的更新文档中所示.您可以选择使用松散类型的API来构建更新语句,例如:

db.Update(table: "table1", 
  set: "column1 = {0}".Params("value1"), 
  where: "column2 = {0}".Params("value2"));
Run Code Online (Sandbox Code Playgroud)

Params扩展方法逃脱你自己的价值观.

否则执行任意原始sql的方法就是使用db.ExecuteSql().