ServiceStack ormlite 中是否有反透视或交叉应用?
Is there unpivot or cross apply in ServiceStack ormlite?
我正在使用 ServiceStack 4.5.14。我想将 Guid 列表传递给如下查询。
Table 名称:图片
列:(Id -> Type=Guid)(ImageId -> Type=Guid)(Guid -> Type=Guid)
var result = Db.ExecuteSql("select value from image unpivot (value for col in (Id, ImageId)) un where Guid=(@param) order by Guid",
new { param = "5de7f247-f590-479a-9c29-2e68a57e711c" });
它 returns 结果是它们的 Id 和 ImageId 是 000.... 而它们是空的。
另一个问题是:如何将 Guid 列表作为参数发送到上述查询?
要查询参数化字段,您应该包含 Guid 而不是字符串,例如:
var result = Db.ExecuteSql(
@"select value from image unpivot (value for col in (Id, ImageId)) un
where Guid=(@param) order by Guid",
new { param = new Guid("5de7f247-f590-479a-9c29-2e68a57e711c") });
如果值为 null,则可能伪装错误,您可以使用以下方法冒泡错误:
OrmLiteConfig.ThrowOnError = true;
或启用调试 logging:
LogManager.LogFactory = new ConsoleLogFactory();
在 v5+ 中,您还可以检查 SQL 命令 在 它们执行之前:
OrmLiteConfig.BeforeExecFilter = dbCmd => Console.WriteLine(dbCmd.GetDebugString());
我正在使用 ServiceStack 4.5.14。我想将 Guid 列表传递给如下查询。
Table 名称:图片
列:(Id -> Type=Guid)(ImageId -> Type=Guid)(Guid -> Type=Guid)
var result = Db.ExecuteSql("select value from image unpivot (value for col in (Id, ImageId)) un where Guid=(@param) order by Guid",
new { param = "5de7f247-f590-479a-9c29-2e68a57e711c" });
它 returns 结果是它们的 Id 和 ImageId 是 000.... 而它们是空的。
另一个问题是:如何将 Guid 列表作为参数发送到上述查询?
要查询参数化字段,您应该包含 Guid 而不是字符串,例如:
var result = Db.ExecuteSql(
@"select value from image unpivot (value for col in (Id, ImageId)) un
where Guid=(@param) order by Guid",
new { param = new Guid("5de7f247-f590-479a-9c29-2e68a57e711c") });
如果值为 null,则可能伪装错误,您可以使用以下方法冒泡错误:
OrmLiteConfig.ThrowOnError = true;
或启用调试 logging:
LogManager.LogFactory = new ConsoleLogFactory();
在 v5+ 中,您还可以检查 SQL 命令 在 它们执行之前:
OrmLiteConfig.BeforeExecFilter = dbCmd => Console.WriteLine(dbCmd.GetDebugString());