J'ai un modèle qui ressemble à ceci:DDD et des entités de base, le modèle en utilisant plusieurs types d'identité
public interface IEntity
{
int Id { get; set; }
}
Alors l'idée est d'avoir mes entités héritent de cette interface:
public class User : IEntity
{
public int Id { get; set; }
}
Cependant , une de mes entités a en fait un Guid comme identifiant.
public class UserSession
{
public Guid Id { get; set; }
}
Je voudrais vraiment toutes mes entités héritant de la même interface, mais qui me forcer à ajouter une colonne d'identité à base entière à la UserSession qui est inutile puisque Guid est l'identité, mais il garderais le modèle de domaine sympa puisque toutes les entités hériteraient de la même base.
Quelles options ai-je dans ce scénario? Puis-je avoir deux interfaces de base, une pour int et une pour Guid? Dois-je ajouter une colonne d'identité dans l'entité UserSession, bien qu'elle ne soit pas nécessaire? J'ai besoin du Guid, donc je ne peux pas m'en débarrasser et le remplacer par entier.
Des idées sur les meilleures pratiques?
Très belle ! Merci! – Thomas
Comment est-ce que je mettrais en application cela sur dire une interface de base de dépôt? Il était: interface publique IRepository où TEntity: IEntity –
Thomas
Vous devez faire un référentiel générique de TEntity et TEntityKey qui n'est pas un très bon choix de conception. Pourquoi avez-vous besoin d'avoir un champ Id dans IEntity? –