我有以下课程:
public class Header
{
public int Id { get; set; }
....
}
public class Item
{
public int Id { get; set; }
public int HeaderId { get; set; } //FK
public int ItemSequence { get; set; }
public string Value { get; set; }
...
}
Header
和Item
具有一对多关系(每个Header
都有很多Items
我关注Items
:
{{Id=1, HeaderId=1, ItemSequence =1, Value="A"},
{Id=2, HeaderId=1, ItemSequence =2, Value="B"},
{Id=3, HeaderId=2, ItemSequence =1, Value="C"},
{Id=4, HeaderId=2, ItemSequence =2, Value="D"},
{Id=5, HeaderId=2, ItemSequence =3, Value="B"}}
我想写一个查询来查找字典,每个ItemSequence
(Header
= 1)的密钥是ItemSequence
,其他ItemSequence
的值是 Key: {HeaderId=1, ItemSequence =1} , Values : {"A","B"}
Key: {HeaderId=2, ItemSequence =1} , Values : {"C","D","B"}
,换句话说,我希望实现以下结果:
var result = ctx.Headers
.SelectMany(x => x.Items
.Select(t => new { t.Id,t.ItemSequence,t.HeaderId}))
.?
我写了以下查询:
?
我应该使用哪个代码C:\dev\Delphi Projects\TNS
?
答案 0 :(得分:0)
类似的东西:
var result =
ctx
.Headers
.ToDictionary(
header => new {
header.Id,
header.Items.First().ItemSequence
},
header =>
header
.Items
.Select(item => item.Value)
.ToList()
);
假设所有标题至少包含一个项目。
考虑到这一点,你可能想要第一个有序的 ItemSequence
,在这种情况下使用类似的东西:
header.Items.OrderBy(item => item.ItemSequence).First().ItemSequence
要忽略没有使用任何项目的标题:
ctx
.Headers
.Where(header => header.Items.Any())
...
答案 1 :(得分:0)
在您想要的结果中, [java] Could not generate timestamp: Connection reset
始终等于1.我认为这是多余的。
您可以std::string word;
while (word != "exit") {
std::cin >> word;
// your code
}
HeaderId并将其转换为字典,就像这样。
ItemSequence