How do Shaper and Coordinator work in Entity Framework [требует правки]

229
19 апреля 2018, 09:22

Hellow Community!

Can you please explain how do Coordinator and Shaper work for materialization?

Particularly interested in the hierarchical read of nested collections.

In more details, i need to have a simplified implementation of Shaper+Coordinator to convert source:

var source = new[]
        {
            new Record { Id = 1, Subject = "How to", PartyId = 81, FirstName = "Dart Vaider", LabelId = 51, Tag = "Important" },
            new Record { Id = 1, Subject = "How to", PartyId = 81, FirstName = "Dart Vaider", LabelId = 52, Tag = "Urgent" },
            new Record { Id = 1, Subject = "How to", PartyId = 82, FirstName = "Lea Organo", LabelId = 51, Tag = "Important" },
            new Record { Id = 1, Subject = "How to", PartyId = 82, FirstName = "Lea Organo", LabelId = 52, Tag = "Urgent" },
            new Record { Id = 2, Subject = "Just do it", PartyId = 83, FirstName = "Luk Skywalker", LabelId = 51, Tag = "Important" },
            new Record { Id = 2, Subject = "Just do it", PartyId = 83, FirstName = "Luk Skywalker", LabelId = 52, Tag = "Urgent" },
            new Record { Id = 2, Subject = "Just do it", PartyId = 83, FirstName = "Luk Skywalker", LabelId = 55, Tag = "Interesting" },
            new Record { Id = 2, Subject = "Just do it", PartyId = 84, FirstName = "Han Solo", LabelId = 51, Tag = "Important" },
            new Record { Id = 2, Subject = "Just do it", PartyId = 84, FirstName = "Han Solo", LabelId = 52, Tag = "Urgent" },
            new Record { Id = 2, Subject = "Just do it", PartyId = 84, FirstName = "Han Solo", LabelId = 55, Tag = "Interesting" },
        };

to the list of Emails considering the following structure

public class Email
{
    public int Id { get; set; }
    public string Subject { get; set; }
    public ICollection<Tag> Tags { get; set; }
    public ICollection<Contact> Contacts { get; set; }
}
public class Tag
{
    public int Id { get; set; }
    public string Text { get; set; }
}
public class Contact
{
    public int Id { get; set; }
    public string FirstName { get; set; }
}

Asuming, that actual materialization of Record -> Email, Record -> Contact, Record -> Tag are primitive, no need to concentrate on this.

Thank you very much for help

READ ALSO
Linq удалить диапазон по id

Linq удалить диапазон по id

Как написать запрос удаления диапазона по списку id, без создания сущностей которые требуются в RemoveRange?

227
c# разбить pdf файл на отдельные картинки

c# разбить pdf файл на отдельные картинки

какие есть библиотеки чтобы разбить pdf файл на отдельные страницы и сохранить их в виде jpg?

174
Как сделать такой hover [дубликат]

Как сделать такой hover [дубликат]

На данный вопрос уже ответили:

254
Проблема со скроллом Iphone/safari

Проблема со скроллом Iphone/safari

День добрыйИмеется сайт: http://cubegym

205