public DictionaryEntryDataSource(DictionaryEntryVariablePair dictionaryVariables)
     : base(
         dictionaryVariables.SourceMember.EntryMember,
         dictionaryVariables.Variables,
         GetDictionaryEntryValue(dictionaryVariables),
         GetValidEntryExistsTest(dictionaryVariables))
 {
     _dictionaryVariables = dictionaryVariables;
 }
        private static Expression GetValidEntryExistsTest(DictionaryEntryVariablePair dictionaryVariables)
        {
            if (dictionaryVariables.UseDirectValueAccess)
            {
                return(null);
            }

            var valueVariableAssignment = dictionaryVariables.GetEntryValueAssignment();
            var valueNonNull            = valueVariableAssignment.GetIsNotDefaultComparison();

            return(valueNonNull);
        }
示例#3
0
        private static Expression GetDictionaryEntryValue(DictionaryEntryVariablePair dictionaryVariables)
        {
            if (dictionaryVariables.UseDirectValueAccess)
            {
                return(dictionaryVariables.GetEntryValueAccess());
            }

            var valueConversion = dictionaryVariables.MapperData.GetValueConversionOrCreation(
                dictionaryVariables.Value,
                dictionaryVariables.MapperData.TargetMember.Type);

            return(valueConversion);
        }