使用来自分组Linq查询的数据以及来自另一个表的相关数据创建列表

时间:2016-06-09 12:16:30

标签: c# wpf linq devexpress-wpf

我有两个与DataID相关的实体。 我需要的是,获取一个列表,或两个列表将数据传递给WPF表单进行显示。

    public class Journal
    {
    [Key]
    public int ID {get; set;}


    public int DataID {get; set;}
[ForeignKey("DataID")]   
 public virtual JournalData JournalData { get; set; }
    }

    Public class JournalData
    {
    [Key]
    public int DataID {get; set;}
    public string Field1 { get; set; }
    public string Field2 { get; set; }
    }

First of all I created a lists 
List<Journal>
List<JournalData>

当我试图从DataID

分组的期刊中获取数据时
List<Journal> result = query
                    .GroupBy(t => t.DataID)
                    .Select(g => new { DataID = g.Key})
                    .ToList()
                    .Select(t => new Journal() { DatatID = t.DataID })
                    .ToList();

我只有DataID,现在我想从JournalData添加数据,其中DataID = t.DataID

你能帮帮我吗? Mabe是一种通过关系获取相关数据的方法吗?

1 个答案:

答案 0 :(得分:0)

您可能需要在查询中include JournalData

您需要添加以下命名空间

using System.Data.Entity;

像这样(未经测试)

List<Journal> result = query
                .Include(t => t.JournalData)
                .GroupBy(t => t.DataID)
                .Select(g => new { DataID = g.Key, JornalData = g.JournalData})
                .ToList()
                .Select(t => new Journal() { DatatID = t.DataID, JournalData = t.JournalData })
                .ToList();

修改

var result = query.Include(t => t.JournalData)
                  .GroupBy(g => g.DataID)                     
                  .Select(g => new { DataID = g.Key, JournalData = g.Select(j => j.JournalData) })
                  .ToList();

<强> EDIT2 如果你想在DataID旁边的field1,field2就像这样

var result = journals.GroupBy(g => g.DataID)
                .Select(g => new
                {
                    DataID = g.Key,                     
                    Fields = g.Select(j => new { Field1 = j.JournalData.Field1, Field2 = j.JournalData.Field2}) 
                })                  
                .ToList();