SQLite EF6 select qeury bad data
Есть проект на C#. Использую EF6 совместно с System.Data.SQLite, System.Data.SQLite.EF6, System.Data.SQLite.LINQ.
Domain:
Company.cs:
[Table("CompanyList")]
public class Company()
{
[Key]
public long Id {get;set;}
public string Name {get;set;}
public List<Product> Products {get;set;}
}
Product.cs:
[Table("ProductList")]
public class Product()
{
[Key]
public long Id {get;set;}
public string Name {get;set;}
public List<string> Params {get;set;}
}
В Application нужно получить список компаний, в имени или параметрах продуктов которых содержится поисковая строка (в 95% случаев строка будет только из русских символов, без цифр).
Application.cs
public List<Company> SearchBy(string searchString)
{
AppContext.CompanyList.Where(c => c.Name.Contains(searchString) ||
c.Products.Where(p => p.Name.Contains(searchString)).Count() > 0 ||
c.Products.Where(p => p.Params.Where(param => param.Contains(searchString)).Count() > 0).Count() > 0);
}
Программа может работать как с MSSQL, так и с SQLite. При выполнении данного запроса к MSSQL все работает без проблем, а при выполнении запроса к SQLite возвращает верные компании + в которых нет данных по поисковой строке.
Подскажите в какую сторону копать?
Источник: Stack Overflow на русском