Entity Framework Базовый домен и классы - PullRequest
0 голосов
/ 07 ноября 2018

В настоящее время я слежу за проектом, разрабатываемым csharpfritz (из Microsoft). Это называется "corewiki". Некоторая форма проекта, подобного "Википедии". Вот ссылка на репозиторий на github: CoreWiki от Джеффа Фрица На доменном классе для комментариев он пишет это:

Я пытаюсь понять, почему он создал сущность Класс FromDomain и Класс ToDomain :

// Main model

public class CommentDAO
{
    public int Id { get; set; }
    public int ArticleId { get; set; }
    public virtual ArticleDAO Article { get; set; }
    public string DisplayName { get; set; }
    public string Email { get; set; }

    [NotMapped]
    public Instant Submitted { get; set; }
    public string Content { get; set; }
}


public static CommentDAO FromDomain(Core.Domain.Comment comment)
{
    return new CommentDAO
    {
        AuthorId = comment.AuthorId,
        Content = comment.Content,
        DisplayName = comment.DisplayName,
        Email = comment.Email,
        Id = comment.Id,
        ArticleId = comment.ArticleId,
        Submitted = comment.Submitted
    };
}

public Core.Domain.Comment ToDomain()
{
    return new Core.Domain.Comment
    {
        AuthorId = AuthorId,
        Content = Content,
        DisplayName = DisplayName,
        Email = Email,
        Id = Id,
        ArticleId = this.Article.Id,
        Submitted = Submitted
    };
}

1 Ответ

0 голосов
/ 07 ноября 2018

Это просто сопоставление кода для сопоставления модели домена с объектом доступа к данным и наоборот. Вы можете реализовать это разными способами, например, как показал автор, или используя явные операторы преобразования, или используя такой инструмент, как AutoMapper.

См., Например, Отделение модели домена от модели персистентности (впервые в Google прозвучало слово "почему модель домена отделяется от dao") для объяснения, почему вы этого хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...