SQLite EF6 select qeury bad data

Рейтинг: 0Ответов: 0Опубликовано: 17.01.2023

Есть проект на 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 возвращает верные компании + в которых нет данных по поисковой строке.

Подскажите в какую сторону копать?

Ответы

Ответов пока нет.