Linq要在两个表之间进行sql查询

时间:2014-08-21 20:39:48

标签: c# string linq-to-sql

我有两张桌子

表:“角色”

Role_Id   Role_Name        Role Description
1         Administrator    Can mange everything
2         Ticket_Manager   Can manage tickets
3         Ticket_User      Can solve a ticket

表:“用户”

User_ ID    User_Name     User_Role(Foreign Key to Role table)
1           Harry         2

我的问题是,如果我知道User_Name(例如“Harry”的例外角色),我怎样才能获得Role_Name?我需要一个linq到sql的代码。

结果应该是字符串 例如:

string s = (query);

string [] result = {s}; 返回结果;

我试图找到一个解决方案2小时但没有得到任何积极的结果

2 个答案:

答案 0 :(得分:0)

string result = (from r in (your db context).Role
            join u in (your db context).User on r.Role_ID equals u.User_Role
            where u.UserName.Equals("Harry")
            select r.Role_Name).Single<string>();

你的意思是这样吗?

答案 1 :(得分:0)

var username = "Harry";

var result = db.Users
    .Where(x => x.User_Name == username)
    .Select(x => x.Role.Role_Name)
    .Single()

您应该注意以下内容

  1. 结果实际上是string类型。这称为Implicitly Typed Local Variable
  2. Single()假设只有一个结果。您可能需要也可能不需要以下方法之一:Single()First()SingleOrDefault()FirstOrDefault()。关于差异的一篇很棒的文章是LINQ Single vs SingleOrDefault vs First vs FirstOrDefault