System.Data.Entity.Core.Objects.ELinq.ExpressionConverter.ImplementEqualityConstantAndUnknown C# (CSharp) 메소드

ImplementEqualityConstantAndUnknown() 개인적인 메소드

private ImplementEqualityConstantAndUnknown ( DbConstantExpression constant, DbExpression unknown, EqualsPattern pattern ) : DbExpression
constant DbConstantExpression
unknown DbExpression
pattern EqualsPattern
리턴 DbExpression
        private DbExpression ImplementEqualityConstantAndUnknown(
            DbConstantExpression constant, DbExpression unknown, EqualsPattern pattern)
        {
            switch (pattern)
            {
                case EqualsPattern.Store:
                case EqualsPattern.PositiveNullEqualityNonComposable: // for Joins                    
                    return constant.Equal(unknown); // either both are non-null, or one is null and the predicate result is undefined
                case EqualsPattern.PositiveNullEqualityComposable:
                    if (!_funcletizer.RootContext.ContextOptions.UseCSharpNullComparisonBehavior)
                    {
                        return constant.Equal(unknown); // same as EqualsPattern.PositiveNullEqualityNonComposable
                    }
                    return constant.Equal(unknown).And(unknown.IsNull().Not());
                // add more logic to avoid undefined result for true clr semantics
                default:
                    Debug.Fail("unknown pattern");
                    return null;
            }
        }