这是我用于实体模型的Linq语法
IQueryable<string> objEmployee = null;
objEmployee = from res in _db.EMPLOYEEs
where (res.EMAIL == givenInfo || res.USER_NAME == givenInfo)
select res.EMAIL;
如何选择多列?就像我想选择res.ID一样。我怎么能收到那些?我认为,IQueryable是行不通的。 这被称为Linq to SQL - 对吗?
答案 0 :(得分:164)
正如其他答案所示,您需要使用匿名类型。
就语法而言,我个人更喜欢方法链接。链接等效的方法是: -
var employee = _db.EMPLOYEEs
.Where(x => x.EMAIL == givenInfo || x.USER_NAME == givenInfo)
.Select(x => new { x.EMAIL, x.ID });
AFAIK,声明性LINQ语法在编译时转换为与此类似的方法调用链。
<强>更新强>
如果你想要整个对象,那么你只需省略对Select()
的调用,即
var employee = _db.EMPLOYEEs
.Where(x => x.EMAIL == givenInfo || x.USER_NAME == givenInfo);
答案 1 :(得分:68)
您可以使用匿名类型,例如:
var empData = from res in _db.EMPLOYEEs
where res.EMAIL == givenInfo || res.USER_NAME == givenInfo
select new { res.EMAIL, res.USER_NAME };
答案 2 :(得分:3)
var employee = (from res in _db.EMPLOYEEs
where (res.EMAIL == givenInfo || res.USER_NAME == givenInfo)
select new {res.EMAIL, res.USERNAME} );
或者你可以使用
var employee = (from res in _db.EMPLOYEEs
where (res.EMAIL == givenInfo || res.USER_NAME == givenInfo)
select new {email=res.EMAIL, username=res.USERNAME} );
说明:
从db中选择员工作为res。
根据where条件过滤员工详细信息。
通过使用新的{}