Работает ли ниже?
public List<bksb_Users> SearchStudents(string reference, string firstname, string lastname)
{
var anon = (from u in context.bksb_Users
where u.userName.Contains(reference)
&& u.FirstName.Contains(firstname)
&& u.LastName.Contains(lastname)
orderby u.FirstName, u.LastName
select new
{
user_id = u.user_id,
userName = u.userName,
FirstName = u.FirstName,
LastName = u.LastName,
DOB = u.DOB
}).Take(100).ToList();
return anon.Select(z => new bksb_Users()
{
user_id = z.user_id, userName = z.userName, FirstName = z.FirstName, DOB = z.DOB
}).ToList();
}
Все, что я сделал, это разделил задачу на два шага:
- Получите данные (в анонимный тип), используя LINQ дляEntities.
- Преобразуйте анонимный тип в нужный тип, используя LINQ to Objects.
Обратите внимание, что лучшим вариантом будет создание нового типа (класса), который содержит только поля /свойства, которые вам нужны - это устранит необходимость в шаге 2 и прояснит для тех, кто вызывает вашу функцию, какие столбцы «заполнены», а какие нет.Это также означает, что у вас меньше шансов «случайно» попытаться сохранить эти наполовину заполненные сущности обратно в базу данных.