Skip to content

Instantly share code, notes, and snippets.

@pieterdv
Created October 2, 2013 07:16
Show Gist options
  • Save pieterdv/6790087 to your computer and use it in GitHub Desktop.
Save pieterdv/6790087 to your computer and use it in GitHub Desktop.
convert list of (string) fields to a linq to sql statement
Func<Tin, Tout> CreateSelectStatement<Tin, Tout>(string fields)
{
var xParameter = Expression.Parameter(typeof(Tout), "o");
var xNew = Expression.New(typeof(Tout));
var bindings = fields.Split(new[] { "," }, StringSplitOptions.RemoveEmptyEntries).Select(o => o.Trim()).Select(o =>
{
var mi = typeof(Tout).GetProperty(o);
var xOriginal = Expression.Property(xParameter, mi);
return Expression.Bind(mi, xOriginal);
});
var xInit = Expression.MemberInit(xNew, bindings);
var lambda = Expression.Lambda<Func<Tin, Tout>>(xInit, xParameter);
return lambda.Compile();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment