Использование объединения со списком и сущностью данных - PullRequest
1 голос
/ 16 июня 2020

Я новичок в работе с LINQ и хотел бы знать, как лучше всего выполнить мое требование.

Сведения о требовании: CSV = "test1, test2, test3"

CSV может иметь более 100 значений, разделенных запятыми

Для каждого значения в значениях, разделенных запятыми, мне нужно получить данные из БД с помощью LINQ, как показано ниже. DBContext.Where (t => t.Column1 == test1)

Кто-нибудь может мне помочь, какой лучший подход сделать то же самое в структуре сущностей?

Я думаю, цикл через массив разделение CSV не будет оптимальным, если в CSV больше значений.

Заранее спасибо

1 Ответ

1 голос
/ 16 июня 2020

Приведенный ниже код преобразуется в SQL "in" и, вероятно, будет более эффективным, чем цикл и выполнение запроса для каждого элемента.

SELECT * FROM MyTable where Column1 IN ('test1', 'test2', 'test3')

// Read CSV to array
var csv = new [] {"test1", "test2", "test3"};

// Get values from database 
DBContext.Where(t => csv.Contains(t.Column1));
...