使用来自分组 Linq 查询的数据加上来自另一个 table 的相关数据创建列表
Create list with data from grouped Linq query plus related data from another table
我有两个实体 通过 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 分组的 Journal 中获取数据时
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
你能帮帮我吗?请问这是一种通过关系获取相关数据的方法吗?
您可能需要在查询中 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
如果你想要 field1, field2 在 DataID 旁边是这样的
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();
我有两个实体 通过 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 分组的 Journal 中获取数据时
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
你能帮帮我吗?请问这是一种通过关系获取相关数据的方法吗?
您可能需要在查询中 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 如果你想要 field1, field2 在 DataID 旁边是这样的
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();