Предположим, у вас есть таблица с этой моделью:
public class User{
public int ID {get; set;}
public string NickName {get; set;}
public string FirstName {get; set;}
public string LastName {get; set;}
public string FotherName {get; set;}
public DateTime BirthDate {get; set;}
public string Mobile {get; set;}
public string Email {get; set;}
public string Password {get; set;}
}
Теперь вы хотите получить только ID
, FirstName
, LastName
и FotherName
.Вы можете сделать это двумя способами;Первый способ - извлечь их как объект anonymous
, посмотрите:
var user = entityContext.Users.Where(u => u.ID == id)
.Select(u => new {
ID = u.ID,
FirstName = u.FirstName,
LastName = u.LastName,
FotherName = u.FotherName
}).Single();
Теперь ваш тип возвращаемого значения anonymous
, вы можете работать с ним, например:
var i = user.ID;
// or
var s = user.FirstName;
Другим способом (например, когда вы хотите передать объект как Модель в Представление ), вы можете определить новый класс,(т.е. UserViewModel
), и когда вы выбираете объект, выберите его как UserViewModel
.посмотрите:
public class UserViewModel{
public int ID {get; set;}
public string NickName {get; set;}
public string FirstName {get; set;}
public string LastName {get; set;}
public string FotherName {get; set;}
}
и в запросе возьмите это:
var user = entityContext.Users.Where(u => u.ID == id)
.Select(u => new UserViewModel {
ID = u.ID,
FirstName = u.FirstName,
LastName = u.LastName,
FotherName = u.FotherName
}).Single();
посмотрите, что между ними только ONE разница в выражении labda вместо u => new {}
мы используем u => new UserViewModel{}
.Удачи.