2017-01-01 2 views
0

Я хочу, чтобы запрос на два поля с несколькими данными через EntityFramework на студенческой сущности. Я хочу, чтобы все ученики, имена и семьи, были в фильтрах вместе. Я исключил, что записи 9 и 6 возвращаются в результате с одним запросом. как это сделать.Linq содержит запрос в двух полях

данных в БД:

Id   Name  Family 
------------------------------- 
1   John  Cooper 
2   Lee  Chang 
3   Morgan  Freeman 
4   Luis  Enrique 
5   Jack  Anderson 
6   Adam  Freeman 
7   Bill  Gates 
8   David  Beckham 
9   Luis  Figo 

фильтров:

var filters = new List<NameFamily> 
{ 
    new NameFamily{Name = "Adam", Family = "Freeman"}, 
    new NameFamily{Name = "Luis", Family = "Figo"}, 
}; 

Классы следующая:

public class Student 
{ 
    public int Id{get; set;} 
    public string Name{get; set;} 
    public string Family{get; set;} 
} 

public class NameFamilyDto 
{ 
    public string Name{get; set;} 
    public string Family{get; set;} 
} 

ответ

1

Это то, что вы ищете?

var studentList = new List<Student>(); 
foreach (var filter in filters) 
{ 
    var student = _dbContext.Set<Student>.where(x => x.Name == filter.Name && x.family == filter.family); 
    if (student != null) 
    { 
     studentList.Add(student); 
    } 
} 
+0

Это не проблема, связанная с тем, что ученики должны быть извлечены из БД с помощью EF, а список фильтров не содержит сущностей. – Sefe

-1

Вы можете попробовать,

Добавить объект в namefamilydto NameFamily

Public строка NameFamily получить {вернуться Имя + Family}

И ваш lonq запрос будет,

Var result = db.students.where (e => filters.select (m => m.NameFamily) .contains (e.name + e.family)

Пожалуйста, игнорируйте синтаксис, потому что я ответил с мобильного.

Смежные вопросы