假设您有一个使用此模型的表:
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。您可以通过 2 种方式进行操作;第一种方法是将它们作为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;
以另一种方式(例如,当您想将对象作为 Model 传递给 View 时),您可以定义一个新的类,(即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{}。祝你好运。