假设我有以下员工表结构
id int
fName varchar
lname varchar
adresss varchar
country varchar
假设我已经创建了一个
employees
列表。在我的 LINQ
语句中返回该表中的所有员工,我想 exclude
列 address
和 country
。如果没有在 select()
中手动编写我需要的列,是否还有其他方法可以排除这两列,这样我就可以进行这样的选择db.EMployees.Exclude("Address").Exclude("Country").where(x=>x.lname=="marcus").Select(d=>d);
最佳答案
不幸的是,除非您投影查询以获得预期的结果,否则您不能这样做:
public class EmployeesDTO
{
public int Id{get;set;}
public string fName {get;set;}
//the rest
}
var query= db.EMployees.Where(x=>x.lname=="marcus")
.Select(d=>new EmployeesDTO{Id=d.Id, fName=d.Name,...});
但更好的主意是使用 Automapper 使用
ProjectTo
扩展方法为您做大选择:var query= db.EMployees.Where(x=>x.lname=="marcus").ProjectTo<EmployeesDTO>();
关于c# - 如何在返回的 LINQ 中从 db 表中排除两列?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35320127/