Como converter Expressão Lambda para Sql?

Estou desenvolvendo um pequeno framework para acessar o banco de dados. Eu quero adicionar um recurso que faz uma consulta usando uma expressão lambda. Como eu faço isso?

public class TestModel
{
    public int Id {get;set;}
    public string Name {get;set;}
}

public class Repository<T>
{
    // do something.
}

Por exemplo:

var repo = new Repository<TestModel>();

var query = repo.AsQueryable().Where(x => x.Name == "test"); 
// This query must be like this:
// SELECT * FROM testmodel WHERE name = 'test'

var list = query.ToDataSet();
// When I call ToDataSet(), it will get the dataset after running the made query.

questionAnswers(3)

yourAnswerToTheQuestion