Sono sicuro di averlo già fatto in alcune fasi, ma non riesco a capire come farlo ora! Il mio scenario:Sovrascrittura del costruttore DbContext generato dal codice
// This is generated from EDMX
public partial class HOLDbEntities : DbContext
{
public HOLDbEntities()
: base("name=HOLDbEntities")
{
}
}
Ora, voglio che questa stringa di connessione per essere facilmente modificabili (Voglio realizzare dai HOLDbEntities), quindi ho bisogno di ignorare questo costruttore.
ho provato:
public partial class HOLDbEntities
{
private const string _contextName = "HOLDbEntities";
public static string ContextName { get { return _contextName; } }
public HOLDbEntities()
: base(ContextName)
{
}
}
Ma questo genera un errore:
HOLDbEntities already defines a member called "HOLDbEntities" with the same parameter types.
Posso capire perché questo gli errori, ma come mi sarei fermato il costruttore di essere auto-generata nel primo posto per fare ciò che sto cercando di ottenere?
Le classi parziali sono parti della stessa classe, quindi non è possibile avere due o più metodi (incluso il costruttore) con la stessa firma. Nell'esempio fornito è possibile rimuovere il costruttore nella classe parziale generata (_note: _ se si rigenera l'entità, le modifiche verranno perse) o il costruttore di overload (ad esempio 'public HOLDbEntities (string contextName) : base (contextName)'). – Leri
Vorrei semplicemente aggiungere un altro costruttore con il parametro di cui hai bisogno in modo che esistano entrambi e nel tuo codice chiamante decidi quale utilizzare –