Sto utilizzando Entity Framework 5 nell'approccio Database First e sto utilizzando il file edmx.Classe base/Entity in EntityFramework 5.0
La maggior parte delle mie entità ha 6 campi comuni. Campi come CreatedAt
, CreatedBy
ecc. Ora, ho implementato alcune funzioni come estensioni che possono essere applicate solo a IQueryable
di quelle Entità che hanno i campi comuni. Ma quando implemento il metodo di estensione, è possibile accedervi da qualsiasi tipo di IQueryable
dato che è stato scritto T e io posso solo definire che il tipo T dovrebbe sempre essere di un tipo.
Così, ho pensato di poter dare una classe base alle entità che hanno campi comuni e definire il tipo T come quel tipo di base. Ma, sembra che non posso farlo.
Qualche idea su come risolvere questo o implementare ciò che ho spiegato sopra?
Grazie per la risposta rapida. Quindi, se definisco l'interfaccia al di fuori del file edmx. allora dove dirò all'entità di implementare da quell'interfaccia. Non è facile modificare manualmente tutte le entità richieste in quanto dovrò fare di nuovo tutto quando aggiorno il file edmx. – Amila
Non si tocca il codice generato automaticamente. Questo è ciò per cui si suppone che le classi parziali siano utilizzate. Si crea una classe parziale (nella cartella Modelli) per ciascuna delle entità in EF. È qui che puoi definire un MetadataType per i tuoi modelli (per l'annotazione dei dati). Vedi la risposta aggiornata. – ataravati
Sì, sto usando MetadataType al momento. Ma pensavo che ci potesse essere un modo semplice per farlo, ad esempio dare una classe base a un'entità, sarebbe stato meglio se avesse dato un'interfaccia anche all'interno del diagramma. Ad ogni modo, è come se dovessi definire la classe parziale per tutte le entità. Grazie per l'aiuto rapido – Amila