By default, the Contains method in Entity Framework Core is case sensitive, meaning that it performs a case-sensitive comparison when checking if a string contains a specified substring.
However, you can use a case-insensitive comparison by using the StringComparison enumeration when calling the Contains method. Here's an example:
string searchTerm = "apple"; var products = context.Products .Where(p => p.Name.Contains(searchTerm, StringComparison.OrdinalIgnoreCase)) .ToList();
In this example, the Contains method is called with the StringComparison.OrdinalIgnoreCase option, which performs a case-insensitive comparison. This means that the search term "apple" will match both "Apple" and "apple" in the Name property of the Product entity.
Note that the case sensitivity of Contains may also depend on the database provider being used. For example, SQL Server is generally case-insensitive by default, so Contains will be case-insensitive when used with a SQL Server database. However, other database providers may be case-sensitive by default, so it's important to test your code to ensure that it behaves as expected.
"EF Core Contains Case Sensitivity"
Contains method in EF Core is case-sensitive by default.var result = context.Entities.Where(e => e.Property.Contains("SearchTerm")).ToList(); "EF Core Contains Case Insensitive"
Contains.var result = context.Entities.Where(e => e.Property.Contains("SearchTerm", StringComparison.OrdinalIgnoreCase)).ToList(); "EF Core Contains Case Sensitive LINQ"
var result = context.Entities.Where(e => e.Property.Contains("SearchTerm", StringComparison.Ordinal)).ToList(); "EF Core Case Insensitive Contains in Where Clause"
ToLower() or ToUpper() to make the Contains case-insensitive in the Where clause.var result = context.Entities.Where(e => e.Property.ToLower().Contains("searchterm")).ToList(); "Entity Framework Core StringComparison.OrdinalIgnoreCase"
StringComparison.OrdinalIgnoreCase for case-insensitive comparison.var result = context.Entities.Where(e => e.Property.Contains("SearchTerm", StringComparison.OrdinalIgnoreCase)).ToList(); "EF Core Case Insensitive Contains with InvariantCulture"
StringComparison.InvariantCultureIgnoreCase for case-insensitive comparison.var result = context.Entities.Where(e => e.Property.Contains("SearchTerm", StringComparison.InvariantCultureIgnoreCase)).ToList(); "EF Core Case Sensitivity in SQL Queries"
var result = context.Entities.FromSqlRaw("SELECT * FROM Entities WHERE Property LIKE '%SearchTerm%'").ToList(); "EF Core Case Sensitive Contains in LINQ Query"
var result = context.Entities.Where(e => EF.Functions.Like(e.Property, "%SearchTerm%", StringComparison.Ordinal)).ToList();
"Entity Framework Core Case Insensitive Indexes"
modelBuilder.Entity<Entity>().HasIndex(e => e.Property).IsCaseInsensitive();
"EF Core Case Sensitive StringComparison.OrdinalIgnoreCase in Expression"
StringComparison.OrdinalIgnoreCase in expressions for case-insensitive comparison.var result = context.Entities.Where(e => EF.Property<string>(e, "Property").Contains("SearchTerm", StringComparison.OrdinalIgnoreCase)).ToList(); preloader class-attributes cifilter haversine illegal-characters oracle-call-interface n-ary-tree android-source reshape file-access