Est-il possible d'utiliser le (génial) EntityFramework Reverse POCO Generator pour générer des POCO dans un scénario d'héritage table-per-type?Héritage de table par type avec le générateur POCO Reverse Entity Framework
Ma base de données contient une table log 'base', et deux tables qui en découlent:
create table LogBase
(
Id int identity(1, 1) not null,
LogTime datetime not null default getdate(),
constraint PK_LogBase primary key clustered(Id)
)
create table ErrorLog
(
Id int not null,
ErrorMessage nvarchar(max),
StackTrace nvarchar(max),
constraint PK_ErrorLog primary key(Id),
constraint FK_ErrorLog_LogBase foreign key(Id) references LogBase(Id)
)
create table ChangeLog
(
Id int not null,
PropertyName nvarchar(max),
OldValue nvarchar(max),
NewValue nvarchar(max),
constraint PK_ChangeLog primary key(Id),
constraint FK_ChangeLog_LogBase foreign key(Id) references LogBase(Id)
)
Par défaut, l'inverse POCO Generator génère 3 C classes # - Logbase, ErrorLog, et ChangeLog - chacun qui contient une propriété Id
et qui n'ont aucune relation d'héritage entre eux.
Je peux préciser que ErrorLog et ChangeLog héritent de LogBase en créant des classes et de mettre comme partials l'héritage : LogBase
dans les classes partielles - est-ce la bonne façon de préciser l'héritage?
Dans le générateur de modèles, le rappel UpdateColumn
me permet de spécifier des tables qui doivent omettre leurs colonnes Id
dans le POCO généré.
Je peux utiliser UpdateColumn
pour les tables ErrorLog et ChangeLog - cela entraîne la suppression de la propriété 'Id' de chaque classe, ce qui est correct pour l'héritage table par type. Cependant, il en résulte aussi dans la ErrorLog et des cours de ChangeLog retiré du DbContext généré, et le commentaire suivant apparaît dans les classes ErrorLog et ChangeLog:
// The table 'ChangeLog' is not usable by entity framework because it
// does not have a primary key. It is listed here for completeness.
Est-il possible de préciser la relation d'héritage sans provoque l'omission du générateur des tables dérivées du modèle?
Existe-t-il un moyen d'empêcher le générateur d'inclure les propriétés de navigation dans les objets POCO générés?
pointeur Grande à l'utilisation de UpdateColumn pour résoudre la question en double id dans TPT. Merci. –