如何使用Linq获取两个表值

时间:2017-12-05 14:04:49

标签: c# sql

我有两个表一个是Administrator表,另一个是Teacher表。 我想在单个Gridview中显示这两个表值。 我已将id作为Administrator表中的主键,并将此tech_id作为Teacher表中的外键。 现在,如何在单个gridview中将这些表值一起显示,如图enter image description here

所示

现在请任何人帮我如何使用Linq获得这两个值。 我已经尝试但我不能再做了

   private void loadgri()
    {
        StudentDatabaseEntities empl = new StudentDatabaseEntities();

      var query=from g in empl.Teachers
                join m in empl.Administrators on g.id equals m.id
                where m.username=="cs"
                select new{
   Name = g.username,


        };
       }

2 个答案:

答案 0 :(得分:5)

如果您已经navigation-property

,则不需要join
var query= from t in empl.Teachers
           where t.Administrator.username == "cs"
           select new { Teacher = t.username, Administrator = t.Administrator.username }; 

这只是一个示例,但您可以看到可以访问两个实体的所有属性。

Don’t use Linq’s Join. Navigate!

答案 1 :(得分:3)

要向所有教师及其管理员显示,您不必使用"加入",您只需使用导航属性:

var query = from g in empl.Teachers
            where g.Administrator.username=="cs"
            select new {
                Teacher_Id = g.Id,
                Teacher_Name = g.username,
                Administrator_Id = g.Id,
                Administrator_Name = g.Administrator.username,
                //etc...
            };