C# EF Core-按类别名称筛选列表-忽略大小写
我有以下数据库: 我正在尽可能使用导航属性。我的映射类C# EF Core-按类别名称筛选列表-忽略大小写,c#,linq,entity-framework-core,entity,C#,Linq,Entity Framework Core,Entity,我有以下数据库: 我正在尽可能使用导航属性。我的映射类BookCategory如下所示(我在每个实体中都有集合属性--BookCategories类中的BookCategories属性,以及Categories类中的BookCategories属性): 我想按给定的分类列表获取书籍,而忽略大小写。例如,如果我们有恐怖神秘剧作为输入,我们应该获得恐怖、神秘或戏剧类别的书籍(无论在数据库中它们是恐怖、神秘、戏剧,反之亦然)。我不确定我的想法是否好,以及如何完成它。提前谢谢 public stati
BookCategory
如下所示(我在每个实体中都有集合属性--BookCategories
类中的BookCategories
属性,以及Categories
类中的BookCategories
属性):
我想按给定的分类列表获取书籍,而忽略大小写。例如,如果我们有恐怖神秘剧
作为输入,我们应该获得恐怖、神秘或戏剧类别的书籍(无论在数据库中它们是恐怖、神秘、戏剧,反之亦然)。我不确定我的想法是否好,以及如何完成它。提前谢谢
public static string GetBooksByCategory(BookShopContext context, string input)
{
string[] categories = input.Split(' ', StringSplitOptions.RemoveEmptyEntries);
var books = context.Books
.Where(b => b.BookCategories.Any(bc => String.Equals(bc.Category.Name, ) ));
}
您需要确保您的排序规则配置正确(在数据库中),排序规则决定它是否区分大小写。这与EF无关:) 默认情况下,SQL Server不区分大小写,因此如果您没有更改此选项,则应该可以 然而 排序规则可以在多个级别设置,因此您可能需要检查所有级别:
- 服务器级
- 数据库级
- 列级
您可以在此处阅读更多内容:您需要确保正确配置了排序规则(在数据库中),排序规则决定它是否区分大小写。这与EF无关:) 默认情况下,SQL Server不区分大小写,因此如果您没有更改此选项,则应该可以 然而 排序规则可以在多个级别设置,因此您可能需要检查所有级别:
- 服务器级
- 数据库级
- 列级
您可以在此处阅读更多内容:您接受了一个很好的答案,但您知道如何完成查询本身吗?@GertArnold,不,我不知道。谢谢你的回复@GertArnold,你能帮我一下吗?可能类似于
bc=>categories.Contains(bc.Category.Name)
。你接受了一个很好的答案,但你知道如何完成查询本身吗?@GertArnold,不,我不知道。谢谢你的回复@GertArnold,你能帮我一下吗?可能类似于bc=>categories.Contains(bc.Category.Name)
。
public static string GetBooksByCategory(BookShopContext context, string input)
{
string[] categories = input.Split(' ', StringSplitOptions.RemoveEmptyEntries);
var books = context.Books
.Where(b => b.BookCategories.Any(bc => String.Equals(bc.Category.Name, ) ));
}