Consider the following example (from http://groups.google.com/group/nhusers/browse_thread/thread/7289619c4eceaf2b):
The provider cannot know that u.Name goes into nameRegistered.Value. To allow for that, add a custom transformation that adds the metadata to the ctor call:
Transformations such as the one described above are added a set of classes: KeyValuePairNewExpressionTransformer, and DictionaryEntryTransformer, and TupleNewExpressionTransformer, The transformations, which are enabled by default, add the MemberInfo metadata to NewExpressions for KeyValuePair<TKey, TValue>, DictionaryEntry, and the .NET Tuple types.
To implement such a transformation for custom types, derive from MemberAddingNewExpressionTransformerBase.
For LINQ providers customizing the expression tree preprocessing steps applied by the re-linq front-end, add instances of the transformer classes to the ExpressionTransformationStep.