Как использовать значение массива в Entity Framework в «where»

#c# #frameworks #entity

#c# #фреймворки #сущность

Вопрос:

У меня есть один массив, я хочу использовать значение массива в where Entity Framework

 List<string> arrayN = new List<string>();
for (int i = 0; i <= 100; i  ) {
     arrayN.Add(i);
}
  

Я хочу использовать массив в ее database Entity Framework

 var result = (from s in _entity.ArdSamaneh
                   where arrayN.Contains(s.Code.Trim().ToString())
                   select new {
                   name = s.NameFamily,
             }).ToList();
dataGridView1.DataSource = resu<
  

Комментарии:

1. В чем именно у вас проблема? Что Exception выдает ваша программа? Возможно Could not map entity to database или что-то подобное?

2. Ваша проблема связана с производительностью или результирующим SQL-запросом?

Ответ №1:

Вы могли бы задать предложение «let» для определения массива в запросе, этот пример помогает визуализировать реализацию

 var data = new[] {
    new { Id=1, Name= "Name 1" },
    new { Id=2, Name= "Name 2" },
    new { Id=3, Name= "Name 3" },
    new { Id=4, Name= "Name 4" },
    new { Id=5, Name= "Name 5" },
    new { Id=6, Name= "Name 6" },
    new { Id=7, Name= "Name 7" },
    new { Id=8, Name= "Name 8" }
};
Console.WriteLine(data);

var filterIds = new[] {2,5,8};

var filteredData = from d in data
                    let ids = filterIds
                    where ids.Contains(d.Id)
                    select d;

Console.WriteLine(filteredData);
  

Надеюсь, это поможет — M.Acosta.D