Malheureusement, ef core ne prend pas en charge TPC-modèle, mais nous avons besoin de ce genre de comportement. Ive a écrit une interface qui est appelée IBase et chaque entité implémente cette interface:Api noyau fluide API mis tous les types de colonne de l'interface
public interface IBase
{
Guid Id { get; set; }
[Column(TypeName = "datetime2")]
DateTime CreateDate { get; set; }
[Required]
[StringLength(255)]
string CreateUser { get; set; }
bool Deleted { get; set; }
}
Je veux débarrasser des annotations d'utiliser la configuration API Fluent à la place. Mais j'ai environ 20 entités différentes et 7 Base-valeurs et je veux ne pas faire la même configuration, encore et encore:
modelBuilder.Entity<SomeEntity>()
.Property(e => e.CreateDate)
.HasColumnType("datetime2(2)")
.IsRequired();
Toute idée comment configurer une fois par Base-propriété pour toutes les entités de mise en œuvre IBase ?
Tout d'abord: Merci pour votre effort! Mais qu'en est-il de mon "TPC" -Hint? La classe de base ne me convient pas, à moins que vous ne puissiez me dire comment je peux avoir toutes mes valeurs de base dans chaque base de données. EF 6 a fourni 3 modèles différents (TPH, TPC et TPT), ef core ne supporte que TPH. Donc, votre réponse est correcte "in-content" mais pas vraiment une réponse à ma question (jusqu'à présent) ... – Joshit
Essayez-le d'abord. Il va créer une table séparée pour chaque type de béton. donc c'est TPC. La deuxième partie de la configuration n'a rien à voir avec l'héritage du modèle, il s'agit de l'héritage de la configuration, donc vous pouvez utiliser l'interface ou autre chose. – Ph0en1x
Je suis désolé !! Je l'ai essayé, et vous avez raison - ça marche! Mais je veux avoir raison au moins un point ..;) Votre deuxième revendication n'est pas correcte - si j'essaie d'utiliser une interface pour EntityTypeBuilder j'obtiens l'erreur suivante: Le type d'entité 'EfTEst.IBase' fourni pour l'argument 'clrType 'doit être un type de référence. – Joshit