-
Type:
Bug
-
Resolution: Unresolved
-
Priority:
Major - P3
-
None
-
Affects Version/s: None
-
None
-
None
-
Dotnet Drivers
-
None
-
None
-
None
-
None
-
None
-
None
For example:
context.AddRange(
new Customer { CustomerID = "1", City = "abc" },
new Customer { CustomerID = "2", City = "def" },
new Customer { CustomerID = "101", City = "ghi" },
new Customer { CustomerID = "102", City = "jkl" });
context.SaveChanges();
var results = context.Set<Customer>().Where(c => c.City.IndexOf("e") != -1).ToList();
This should match 1 Customer, but. all 4 are returned.
Repro:
using var context = new SomeDbContext(); context.Database.EnsureDeleted(); context.AddRange( new Customer { CustomerID = "1", City = "abc" }, new Customer { CustomerID = "2", City = "def" }, new Customer { CustomerID = "101", City = "ghi" }, new Customer { CustomerID = "102", City = "jkl" }); context.SaveChanges(); var results = context.Set<Customer>().Where(c => c.City.IndexOf("e") != -1).ToList(); Console.WriteLine(results.Count); foreach (var result in results) { Console.WriteLine($"Found {result} {result.City}"); } public class SomeDbContext : DbContext { protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) => optionsBuilder .UseMongoDB("mongodb://localhost:27017", "SomeDb4") .EnableSensitiveDataLogging() .LogTo(Console.WriteLine, LogLevel.Information); protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.Entity<Customer>().ToCollection("Customers"); } } public class Customer { public string CustomerID { get; set; } public string City { get; set; } }
- depends on
-
CSHARP-5654 String.IndexOf comparisons to -1 return incorrect results
-
- In Code Review
-
- split to
-
CSHARP-5654 String.IndexOf comparisons to -1 return incorrect results
-
- In Code Review
-