[英]Linq - Duplication of records by their collection
可以說我的模型看起來像這樣。
public class OrganizationDTO
{
public int Id { get; set; }
public string Name { get; set; }
public List<StorageDTO> Storages { get; set; } = new List<StorageDTO>();
}
public class StorageDTO
{
public int Id { get; set; }
public string Name { get; set; }
public List<OrganizationDTO> Organizations { get; set; } = new List<OrganizationDTO>();
}
組織可能有多個存儲,因此基本上我想在表中為每個存儲復制組織。 我想在表格記錄中顯示如下
組織1 | 儲存1
組織1 | 存儲2
組織1 | 儲存3
組織1 | 收納4
組織2 | 儲存1
組織2 | 存儲2
我試圖按存儲集合對它們進行分組,但是它並沒有像我想要的那樣重復我的記錄。
var result = Context.Storages
.SelectMany(org => org.Organizations)
.GroupBy(org => org)
.Select(grouping => grouping.FirstOrDefault())
.OrderBy(org => org.Name)
.ProjectTo<SomeDTO>();
看來您只是想平整關系。
var query =
from storage in Context.Storages
from org in storage.Organizations
select new {Storage = storage, Organization = org };
var result = query
.OrderBy(row => row.Organization.Name)
.ProjectTo<SomeDTO>();
var result = Context.Organizations
.SelectMany(organizationDTO =>organizationDTO
.Storages
.Select(storage =>
new {organizationDTO, storage}));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.