簡體   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