我正在使用动态linq并动态选择列。我需要做一个与众不同的事情。我怎么能这样做?
var qry = tbl.AsEnumerable().AsQueryable()
.Select("new(it[\"" + this.UniqueName + "\"]
.ToString() as " + this.UniqueName + ")");
感谢。
答案 0 :(得分:4)
而不是使用
as " + this.UniqueName + "
DO
as someFixedColumnName
并使用普通Linq运行Distinct()
子句。
或者,您可以尝试this extension method:
public static IQueryable DynamicDistinct(this IQueryable source)
{
if (source == null) throw new ArgumentNullException("source");
return source.Provider.CreateQuery(
Expression.Call(
typeof(Queryable), "Distinct",
new Type[] { source.ElementType },
source.Expression));
}