-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
The IAggregateRoot interface is pretty specific to the overall architecture, as you may notice from the few domain-event-related functions in there. For more information regarding this, take a look at my earlier post Designing the domain model to support multiple persistence methods. Despite that, the point of this is to distinguish between data entities and domain entities so you should adjust this interface properly to your needs.
You’ll notice that the IAggregateRepository interface also implements the IEntityRepository interface. Remember that the purpose of this aggregate repository is to solely act upon, and return, domain entities (specifically aggregate roots). In its generic abstract implementation, the aggregate repository (named EFRepository) uses AutoMapper to map between data entities and domain objects, and can directly operate on domain objects using projections, returning IQueryable. To do that, EFRepository makes use of a generic instance of IEntityRepository, which is registered in the DI container with an open generic type of DataEntityRepository.