ServiceStack和Ormlite可以像SQL CASE语句一样更新多条记录吗?

时间:2013-04-15 18:12:08

标签: tsql servicestack ormlite-servicestack

在这种情况下,有多个行具有相同的设备GUID,因为多个用户可能在设备上使用相同的应用程序(但不能同时...除非它们非常接近)。此查询所做的是获取共享相同设备GUID的所有行,然后如果UserId匹配(3012)则将InUse位设置为true(1)。该组中具有不同用户ID的任何行都将其InUse位设置为false(0)。这避免了必须对服务器进行多次调用。

UPDATE Devices 
SET InUse = (CASE UserId WHEN 3012 
THEN 1 ELSE 0 END) 
WHERE DevGuid = '94F74150-26B0-4396-982C-675A14A66FAD'; 

如果有一种方法可以使用ServiceStack / Ormlite,我宁愿选择这条路由于IOC的优势。但其他考虑因素包括尽可能少地调用服务器。此外,使用ADO.NET进入“旧学校”使我能够使用SQL Server Geography和Geometry类型进行最流畅的工作。 (由于其真实的局限性,我已经是微软Azure移动服务的难民了。)

0 个答案:

没有答案