public void Compare_rows_containing_decimal_with_numeric()
        {
            using (var ctx = new ComparisonTestContext())
            {
                var expectedSql =
                    @"SELECT 
    [Extent1].[Id] AS [Id]
    FROM [dbo].[NumericEntities] AS [Extent1]
    WHERE ([Extent1].[Id] = [Extent1].[Id]) AND ([Extent1].[DefaultDecimal] = [Extent1].[DefaultNumeric])";

                var query = ctx.Numerics.Where(s => new { first = s.Id, second = s.DefaultDecimal } == new { first = s.Id, second = s.DefaultNumeric }).Select(c => c.Id);
                QueryTestHelpers.VerifyQuery(query, expectedSql);
            }
        }
        public void Compare_rows_containing_nullable_string_with_nonnullable_string()
        {
            using (var ctx = new ComparisonTestContext())
            {
                var expectedSql =
                    @"SELECT 
    [Extent1].[Id] AS [Id]
    FROM [dbo].[StringEntities] AS [Extent1]
    WHERE ([Extent1].[Id] = [Extent1].[Id]) AND ([Extent1].[NonUnicodeFixedLength25] = [Extent1].[NullableNonUnicodeVariableLength25])";

                var query = ctx.Strings.Where(s => new { first = s.Id, second = s.NonUnicodeFixedLength25 } == new { first = s.Id, second = s.NullableNonUnicodeVariableLength25 }).Select(c => c.Id);
                QueryTestHelpers.VerifyQuery(query, expectedSql);
            }
        }
        public void Compare_rows_containing_datetime2_with_different_precision()
        {
            using (var ctx = new ComparisonTestContext())
            {
                var expectedSql =
                    @"SELECT 
    [Extent1].[Id] AS [Id]
    FROM [dbo].[DateTimeEntities] AS [Extent1]
    WHERE ([Extent1].[Id] = [Extent1].[Id]) AND ([Extent1].[DefaultDateTime2] = [Extent1].[DateTime25])";

                var query = ctx.DateTimes.Where(s => new { first = s.Id, second = s.DefaultDateTime2 } == new { first = s.Id, second = s.DateTime25 }).Select(c => c.Id);
                QueryTestHelpers.VerifyQuery(query, expectedSql);
            }
        }
        public void Compare_rows_containing_nullable_string_with_nonnullable_string()
        {
            using (var ctx = new ComparisonTestContext())
            {
                var expectedSql =
@"SELECT 
    [Extent1].[Id] AS [Id]
    FROM [dbo].[StringEntities] AS [Extent1]
    WHERE ([Extent1].[Id] = [Extent1].[Id]) AND ([Extent1].[NonUnicodeFixedLength25] = [Extent1].[NullableNonUnicodeVariableLength25])";

                var query = ctx.Strings.Where(s => new { first = s.Id, second = s.NonUnicodeFixedLength25 } == new { first = s.Id, second = s.NullableNonUnicodeVariableLength25 }).Select(c => c.Id);
                QueryTestHelpers.VerifyQuery(query, expectedSql);
            }
        }
        public void Compare_rows_containing_decimal_with_numeric()
        {
            using (var ctx = new ComparisonTestContext())
            {
                var expectedSql =
@"SELECT 
    [Extent1].[Id] AS [Id]
    FROM [dbo].[NumericEntities] AS [Extent1]
    WHERE ([Extent1].[Id] = [Extent1].[Id]) AND ([Extent1].[DefaultDecimal] = [Extent1].[DefaultNumeric])";

                var query = ctx.Numerics.Where(s => new { first = s.Id, second = s.DefaultDecimal } == new { first = s.Id, second = s.DefaultNumeric }).Select(c => c.Id);
                QueryTestHelpers.VerifyQuery(query, expectedSql);
            }
        }
        public void Compare_rows_containing_datetime2_with_different_precision()
        {
            using (var ctx = new ComparisonTestContext())
            {
                var expectedSql =
@"SELECT 
    [Extent1].[Id] AS [Id]
    FROM [dbo].[DateTimeEntities] AS [Extent1]
    WHERE ([Extent1].[Id] = [Extent1].[Id]) AND ([Extent1].[DefaultDateTime2] = [Extent1].[DateTime25])";

                var query = ctx.DateTimes.Where(s => new { first = s.Id, second = s.DefaultDateTime2 } == new { first = s.Id, second = s.DateTime25 }).Select(c => c.Id);
                QueryTestHelpers.VerifyQuery(query, expectedSql);
            }
        }