Riz*_*Riz 87 c# linq entity-framework
这是我用于实体模型的Linq语法
IQueryable<string> objEmployee = null;
objEmployee = from res in _db.EMPLOYEEs
where (res.EMAIL == givenInfo || res.USER_NAME == givenInfo)
select res.EMAIL;
Run Code Online (Sandbox Code Playgroud)
如何选择多列?就像我想选择res.ID一样.我怎么能收到那些?我认为,IQueryable是行不通的.这被称为Linq to SQL - 对吗?
Ada*_*lph 172
正如其他答案所示,您需要使用匿名类型.
就语法而言,我个人更喜欢方法链.链接等效的方法是: -
var employee = _db.EMPLOYEEs
.Where(x => x.EMAIL == givenInfo || x.USER_NAME == givenInfo)
.Select(x => new { x.EMAIL, x.ID });
Run Code Online (Sandbox Code Playgroud)
AFAIK,声明性LINQ语法在编译时转换为与此类似的方法调用链.
UPDATE
如果你想要整个对象,那么你只需要省略对它的调用Select(),即
var employee = _db.EMPLOYEEs
.Where(x => x.EMAIL == givenInfo || x.USER_NAME == givenInfo);
Run Code Online (Sandbox Code Playgroud)
Iva*_*lov 70
您可以使用匿名类型,例如:
var empData = from res in _db.EMPLOYEEs
where res.EMAIL == givenInfo || res.USER_NAME == givenInfo
select new { res.EMAIL, res.USER_NAME };
Run Code Online (Sandbox Code Playgroud)
var employee = (from res in _db.EMPLOYEEs
where (res.EMAIL == givenInfo || res.USER_NAME == givenInfo)
select new {res.EMAIL, res.USERNAME} );
Run Code Online (Sandbox Code Playgroud)
或者你可以使用
var employee = (from res in _db.EMPLOYEEs
where (res.EMAIL == givenInfo || res.USER_NAME == givenInfo)
select new {email=res.EMAIL, username=res.USERNAME} );
Run Code Online (Sandbox Code Playgroud)
解释 :
从数据库中选择员工作为 res。
根据 where 条件过滤员工详细信息。
通过使用 new { } 创建 Anonymous 对象,从员工对象中选择所需字段