2011-10-06 1 views

risposta

11

Come ha affermato Ladislav nella sua risposta, è necessario modificare il modello T4 in modo che i commenti vengano inclusi nel codice generato. Questa risposta è stata presa da this article:

Prima di tutto è necessario specificare i commenti nelle caselle delle proprietà del designer del modello. Sotto Documentazione -> Descrizione lunga e Riepilogo.

Poi nel modello, è possibile per esempio aggiungere questo al di sopra della proprietà che si desidera documentare:

<#if (!ReferenceEquals(edmProperty.Documentation, null)) 
{ 
#> 
/// <summary> 
/// <#=edmProperty.Documentation.Summary#> – <#=edmProperty.Documentation.LongDescription#> 
/// </summary> 
<#}#> 

Questo creerà un blocco di sintesi sopra la vostra proprietà nel codice generato.

+0

sembra buono! Non sapevo che puoi modificare il modello che EF usa per generare codice. Qualche suggerimento su dove trovare quei modelli su disco? – Michel

+0

E suppongo di dover modificare i modelli su ogni macchina per sviluppatori? Probabilmente non posso dire a EF che un modello da qualche parte nella soluzione VS deve essere usato? – Michel

+0

@Michel: se fai clic con il tasto destro sulla superficie del designer di edmx, puoi "aggiungere la generazione del codice". Questo file è possibile modificare in base alle proprie esigenze. Dovresti inoltre inserire questo file sotto il controllo del codice sorgente come parte del progetto in modo che possa essere riutilizzato. –

3

No. Dovrai modificare il modello T4 utilizzato per generare classi (o creare un nuovo strumento personalizzato per la generazione di classi) per rendere questi commenti per te.

1

Le classi generate da EF sono tutte classi "parziali". Quindi, definisci un nuovo file con la stessa struttura di scheletro della classe e definisci i tuoi commenti su quelli.

Esempio:

La classe generata EF (Model.designer.cs):

public partial class Student : EntityObject {... // bunch of generated code} 

un tuo file (ModelDocumentation.cs):

/// <summary> Student documentation... </summary> 
public partial class Student {}