public AggregateFinder() { var idMember = DocumentMapping.FindIdMember(typeof(T)); var docParam = Expression.Parameter(typeof(T), "doc"); var idParam = Expression.Parameter(typeof(Guid), "id"); var member = Expression.PropertyOrField(docParam, idMember.Name); var assign = Expression.Assign(member, idParam); var lambda = Expression.Lambda <Action <T, Guid> >(assign, docParam, idParam); _setId = ExpressionCompiler.Compile <Action <T, Guid> >(lambda); }
public StringIdentifiedAggregateFinder() { var idMember = DocumentMapping.FindIdMember(typeof(T)); var docParam = Expression.Parameter(typeof(T), "doc"); var keyParam = Expression.Parameter(typeof(string), "key"); var member = Expression.PropertyOrField(docParam, idMember.Name); var assign = Expression.Assign(member, keyParam); var lambda = Expression.Lambda <Action <T, string> >(assign, docParam, keyParam); _setId = ExpressionCompiler.Compile <Action <T, string> >(lambda); }