¿Cómo uso la construcción SQL WHERE IN con PetaPoco?

Tengo una tabla de base de datos llamada Etiquetas (Id, Nombre) de la que me gustaría seleccionar aquellas en las que el nombre coincida con un nombre en una lista. En SQL, usaría algo como:

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

Pero ahora que uso PetaPoco en un proyecto ASP.Net MVC3, estoy atascado descubriendo cómo hacerlo correctamente. Hasta ahora he intentado:

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 en el siguiente SQL, donde solo el primer name en mi lista de tagsToFind se usa para hacer coincidir los datos de la tabla en lugar de todos ellos.

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

Es un poco frustrante, saber que esto probablemente no sea tan difícil ... ¡se agradece cualquier ayuda!

Actualizar Descubrí que se puede hacer de otra manera

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)

que me da lo que quiero mientras uso sqlparameters. Así que supongo que es lo suficientemente bueno por ahora, aunque no es súper bonito.

/Migue

Respuestas a la pregunta(5)

Su respuesta a la pregunta