Reputation: 2139
I am using ServiceStack 4.5.14. I want to pass a list of Guid to such as below query.
Table Name: Image
Columns: (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" });
It returns a result which their Id and ImageId are 000.... while they are null.
Another question is: how can I send a list of Guid as parameter to above query?
Upvotes: 1
Views: 112
Reputation: 143339
To query a parameterized field you should include the Guid instead of the string, e.g:
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") });
If values are null, it's likely masquerading an error, you can bubble errors with:
OrmLiteConfig.ThrowOnError = true;
Or enable debug logging with:
LogManager.LogFactory = new ConsoleLogFactory();
In v5+ you can also inspect SQL commands before they're executed with:
OrmLiteConfig.BeforeExecFilter = dbCmd => Console.WriteLine(dbCmd.GetDebugString());
Upvotes: 2