в этом уроке о примере приложения EventCloud: https://aspnetboilerplate.com/Pages/Documents/Articles/Developing-MultiTenant-SaaS-ASP.NET-CORE-Angular/index.html
текст гласит: создание нового объекта должно быть выполнено с использованием статического метода «Create» в классе «Event» (без использования"new Entity (....)")
1) поэтому мой первый вопрос: какой это шаблон проектирования?Фабрика?Builder?Другой?
[Table("AppEvents")]
public class Event : FullAuditedEntity<Guid>, IMustHaveTenant
{
......
....
...
/// <summary>
/// We don't make constructor public and forcing to create events using <see cref="Create"/> method.
/// But constructor can not be private since it's used by EntityFramework.
/// Thats why we did it protected.
/// </summary>
protected Event()
{
}
public static Event Create(int tenantId, string title, DateTime date, string description = null, int maxRegistrationCount = 0)
{
var @event = new Event
{
Id = Guid.NewGuid(),
TenantId = tenantId,
Title = title,
Description = description,
MaxRegistrationCount = maxRegistrationCount
};
@event.SetDate(date);
@event.Registrations = new Collection<EventRegistration>();
return @event;
}
....
...
2) второй вопрос:
, чем написано в статье ...
Менеджер событий .... Все операции с событиями должны выполняться с использованием этогоclass ... (EventManager)
хорошо, метод CreateAsync вызывает метод вставки в репозиторий, вызывается ли статический метод "Event.Create" из метода вставки в репозиторий?если да, не могли бы вы указать мне точку в исходном коде abp?или это внутренний вопрос EntityFramework?
public class EventManager : IEventManager
{
......
....
..
public async Task CreateAsync(Event @event)
{
await _eventRepository.InsertAsync(@event);
}