Можем ли мы вызвать метод интерфейса в моем домене в доменном дизайне кода С# сначала mvc

У меня есть эта структура в моем подконтексте в моем DDD (поддомен).

введите здесь описание изображения

Теперь я хочу использовать свои интерфейсы в своем домене. Например, вот моя новостная сущность:

 public  class News
 {
     public Guid Id { set; get; }
     public string Subject { set; get; }
     public string Content { set; get; }
     public DateTime SubmitDatetime { set; get; }
     public DateTime ModifiedDateTime { set; get; }
     public string PublisherName { set; get; }
     public string PictureAddress { set; get; }
     public string TypeOfNews { set; get; }//etelaeie ya khabar
     public HttpPostedFile ImageFile { get; set; } 
 }

Предположим, я хочу добавить, например, новость в свою базу данных. Мой главный вопрос: как я могу добавить новость в свою базу данных? Должен ли я вызывать свой репозиторий внутри класса новостей и создавать для этого метод внутри класса новостей?


person Ehsan Akbar    schedule 15.05.2017    source источник
comment
В него встроено около 5 несвязанных вопросов. Можете ли вы попытаться задать один, более конкретный вопрос и сформулировать его более тщательно?   -  person Aluan Haddad    schedule 15.05.2017
comment
@AluanHaddad, конечно. Я сделал это.   -  person Ehsan Akbar    schedule 15.05.2017
comment
Это немного лучше. Однако я сбит с толку, поскольку вы написали, что хотите использовать мои интерфейсы в моем домене. Например, вот моя новостная сущность :, но далее следует представление вашей сущности как class , а не interface. Также имейте в виду, что модуль EF не является моделью предметной области.   -  person Aluan Haddad    schedule 15.05.2017
comment
@AluanHaddad Итак, вы имеете в виду, что моя сущность должна быть интерфейсом?   -  person Ehsan Akbar    schedule 15.05.2017
comment
Нет, но может быть. Я имею в виду, что ваше утверждение сбивает с толку.   -  person Aluan Haddad    schedule 15.05.2017
comment
@AluanHaddad Мой главный вопрос: как я могу добавить новость в свою базу данных? Должен ли я вызывать свой репозиторий внутри класса новостей и создавать для этого метод внутри класса новостей?   -  person Ehsan Akbar    schedule 15.05.2017
comment
@AluanHaddad, конечно, я так и сделал.   -  person Ehsan Akbar    schedule 15.05.2017
comment
Ваш класс News является моделью объекта, а не моделью предметной области. И нет, вы не должны вызывать репозиторий из модели объекта. Шаблон единицы работы Google в DDD. Модели предметной области сильно отличаются от модели сущностей.   -  person CodingYoshi    schedule 15.05.2017
comment
@CodingYoshi Использование вами слова «сущность» здесь сбивает с толку. ОП никогда не упоминал Entity Framework. И даже в этом случае вы можете идеально определить сопоставления EF непосредственно для объектов домена.   -  person guillaume31    schedule 16.05.2017
comment
@CodingYoshi Но, конечно, этот объект домена анемичен.   -  person guillaume31    schedule 16.05.2017


Ответы (1)


Как правило, служба приложений (в проекте CMSManagement.Application)

  • создать News
  • вызовите репозиторий, чтобы добавить в него News
  • завершить бизнес-транзакцию, эффективно сохраняя News в БД (часто с помощью единицы работы)
person guillaume31    schedule 16.05.2017