假设我有以下员工表结构

id int
fName varchar
lname varchar
adresss varchar
country varchar

假设我已经创建了一个 employees 列表。在我的 LINQ 语句中返回该表中的所有员工,我想 excludeaddresscountry 。如果没有在 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/

10-12 00:26
查看更多