链接两个表LinqToSql

时间:2019-01-27 21:30:41

标签: c# linq-to-sql

我有两个要链接在一起的表。表1是项目:ID,名称,日期。表2将是内容:Id,名称,文本。我想将许多内容链接到一个项目,然后询问链接到给定项目的内容的名称。

示例:

我对以下内容满意:Id=1, Name=Content1, Text=blablabla.

另一个内容为:Id=2, Name=Content2, Text=HelloHello

还有一个项目:Id=1, Name=Project, Date=27.01.2019, ContentsId=1, 2.

第一个问题:如何将它们链接在一起? 第二个问题:如何在项目中询问内容的名称。

谢谢。

1 个答案:

答案 0 :(得分:0)

对于可以完美工作的本地集合:(我添加了虚拟类以进行类型检查)

void Main()
{
    var t1 = new T1[] { new T1(), new T1() };
    var t2 = new T2[] { new T2(), new T2() };

    var joinQuery = 
        from r1 in t1
        from r2 in t2
        where r2.ContentsId.Contains(r1.Id) == true
        select new { name1 = r1.Name, text = r1.Text, name2 = r2.Name };
}

class T1
{
    public int Id { get; set; }
    public string Name { get; set; } 
    public string Text { get;set; }
}

class T2
{
    public int Id { get; set; }
    public string Name { get; set; }
    public int[] ContentsId { get; set; }
}

joinQuery 是关键,因此它返回匿名对象的集合,其中name1-来自第一个集合的名称,text-来自第一个集合的文本,name2-来自第二个集合的名称

希望有帮助。