2017-10-06 61 views
-1

我有下面的SQL查询。不知道如何将其转换为Linq。使用Linq多列选择

select u.userid, u.firstname, u.lastname,companyname,city,state 
from user u 
order by u.lastname, u.firstname 

我已经试过这样:

public ActionResult Users() { 
    dbEntities entities1 = new dbEntities(); 
    return View(from users in entities1.u_user select userid,firstname,lastname,companyname,city,state); 
} 
+0

纯代码编写请求是题外话堆栈溢出 - 我们希望涉及到的具体* *编程的问题在这里 问题 - 但我们 会很乐意帮助你自己写吧!告诉我们 [你试过的东西](https://stackoverflow.com/help/how-to-ask),以及你卡在哪里。 这也将帮助我们更好地回答你的问题。 – glennsl

+0

什么语言 - C#或VB.Net? – NetMage

+0

@glennsl谢谢!我尝试了这样的事情:public ActionResult Users() { dbEntities entities1 = new dbEntities(); return查看(来自entities1.u_user中的用户 select userid,firstname,lastname,companyname,city,state); } – luv2code

回答

0

确切的翻译是:

Db.User.Select(p=> new { 
    userid = p.userId, 
    firstName = p.firstName, 
    lastName = p.lastName, 
    companyName p = p.companyName, 
    city = p.City, 
    state = p.State }).OrderBy(p=>p.lastName).ThenBy(p=>p.firstName) 

当你创建一个动态object只包含你想要一些领域。

如果你想你的实体的所有属性,你可以简单地使用:

Db.User.OrderBy(p=>p.lastName).ThenBy(p=>p.firstName) 
0

在一般情况下,假设C#,通过在LINQ理解语法为了将短语转换成SQL到LINQ,如果SQL有表别名,在LINQ中用它们作为范围变量。将诸如TOPDISTINCT之类的非范围函数转换为表达式其余部分之外的函数调用。

var ans = from u in user 
      orderby u.lastname, u.firstname 
      select new { u.userid, u.firstname, u.lastname, u.companyname, u.city, u.state };