Como uso a construção WHERE IN do SQL com o PetaPoco?

Tenho uma tabela de banco de dados denominada Tags (Id, Nome) na qual gostaria de selecionar aquelas em que o nome corresponde a um nome em uma lista. No SQL eu usaria algo como:

Select * from Tags Where Name In ('Name1', 'Name2', 'xxx...)

Mas agora usando o PetaPoco em um projeto asp.net MVC3, estou preso tentando descobrir como fazê-lo corretamente. Até agora eu tentei:

var tagsToFind = new string[] { "SqlServer", "IIS" };
var sql = PetaPoco.Sql.Builder.Select("*").From("Tags").Where("Name in (@0)", tagsToFind);
var result = db.Query<Tag>(sql);

Que resulta no seguinte SQL, onde apenas o primeiro name na minha lista de tagsToFind é usado para corresponder aos dados da tabela em oposição a todos ele

SELECT * FROM Tags WHERE (Name in (@0)) -> @0 [String] = "SqlServer"

É um pouco frustrante, sabendo que isso provavelmente não é tão difícil .. qualquer ajuda é apreciad

Atualizar Descobri que isso pode ser feito de outra maneira

var sql = PetaPoco.Sql.Builder.Append("Select * from tags Where Name IN (@0", tagNames[0]);
foreach (string tagName in tagNames.Where(x => x != tagNames[0])) {
    sql.Append(", @0", tagName);
}        
sql.Append(")");
var result = db.Query<Tag>(sql)

o que me dá o que eu quero enquanto uso sqlparameters. Então, acho que é bom o suficiente por enquanto, embora não seja super bonit

/Mik

questionAnswers(5)

yourAnswerToTheQuestion