I would go with properties instead of ctor args and take advantage of
3.0s instantiators. This way you don't need builder objects.
Register(new InLineJoinOperation
{
JoinType = JoinType.Inner
LeftOperation = ThisOp(),
LeftColumnsToJoinOn = new[]{"column1"},
RightOperation = ThisOp(),
RightColumnsToJoinOn = new[]{"column1"},
Action = (left, right) => {left}
});
On Dec 22, 3:29 pm, Gauthier Segay <[email protected]> wrote:
> Hi,
>
> I started to use Rhino ETL framework and found useful to be able to
> define operations inline in my processes, what I mean is that I don't
> have to define a class for each typical operation (like join,
> aggregation, filtering, inline sql output, etc.).
>
> I intend to add those inline operation to the framework itself because
> I think it would be useful to other people as well, I started with
> InlineJoinOperation that you can look at here:
>
> https://github.com/smoothdeveloper/rhino-etl/blob/master/Rhino.Etl.Co...
>
> so to do a plain join operation I can now register something like
> this:
>
> var ensureMergerReturnsNewRow = true;
> new InlineJoinOperation(
> columnsToJoinOn,
> columnsToJoinOn,
> JoinType.Inner,
> (left, row) => { // return join result; },
> leftoperation,
> rightoperation,
> ensureMergerReturnsNewRow
> );
>
> instead of having to define a specific class
>
> Anybody think it's a good thing to have those baked in the framework?
> Do you have any feedback on what is shown in this first class?
>
> The icing on the cake for this would be to have fluent operation
> builder to encapsulate the bulky constructors, for this I'm looking
> for syntax ideas.
>
> Thanks for your feedback
--
You received this message because you are subscribed to the Google Groups
"Rhino Tools Dev" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/rhino-tools-dev?hl=en.