在Dapper中,您可以执行以下操作:
尝试在ormlite中做同样的事情:
var items = connection.Query<Items>("SELECT * FROM `@database`.`table` WHERE `id` IN @idList;", new {database = DatabaseName, idList = someList.Select(n => n.id)});
尝试在ormlite中做同样的事情:
var items = connection.Query<Items>("SELECT * FROM {0}`.`table` WHERE `id` IN {1};", DatabaseName, someList.Select(n => n.id)});
返回一个错误。Dapper创建查询如下:
SELECT * FROM `someDB`.`table` WHERE `id` IN (1,2,3,4);
其中ORMlite生成:
SELECT * FROM `someDB`.`table` WHERE `id` IN [1,2,3,4];
在MySQL中,方括号是无效的。在ormlite中是否可以实现这个功能?
当我尝试使用匿名类列出参数(如dapper示例中),它找不到第二个参数。
IN (@idList0, @idList1, @idList2)
...只是这样说而已 ;) 但这听起来像是@Mythz的问题... - Marc Gravell