繁体   English   中英

EF Core 字符串包含字符串数组

[英]EF Core string contains string array

是否可以使用 EF Core 检查字符串是否包含字符串 []

例如,我有一个数据库表,其中一列中有逗号分隔的关键字。 我想获取也包含这些关键字的相关记录。 我尝试的方式:

public class Item {

  int Id { get; set; }

  string Keywords { get; set; }

}
var keywords = item.Keywords.Split(',');

var result = context.Items.Where(i => keywords.Any(j => i.Keywords.Contains(j)).ToListAsync();

这将引发错误消息:

无法翻译 LINQ 表达式 'DbSet().Where(g => __keywords_0.Any(j => g.Keywords.Contains(j)))'。

那么我将如何重写它以便可以将其翻译为 SQL? 获取完整列表并使用 C# 检查它不是一个选项。 也不可能将逗号分隔的关键字列表转换为它自己的表格。

你可以使用这样的东西

public class Product
{
    public Int32 ID { get; set; }
    public List<StringList> Strings{ get; set; }

}

public class StringList
{
    public Int32 Id { get; set; }
    public String Name { get; set; }
}

List<StringList>将替换List<String>
例如DB.Products.Include(x => x.Strings).ToList().ForEach(y => Console.WriteLine(y.Name));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM