Attualmente stiamo utilizzando il metodo seguente che dipende da IObjectContextAdapter in un repository astratto. Da quello che sto leggendo, sembra che qualsiasi cosa relativa a ObjectContext sia stata tagliata da Entity Framework Core. Il metodo seguente è l'unico posto in cui dipendiamo da qualsiasi cosa relativa a ObjectContext.Come ottenere il valore della chiave primaria con Entity Framework Core
Vorremmo eseguire l'aggiornamento a Entity Framework Core. Questo è il nostro unico blocco stradale. C'è un modo per ottenere il valore della chiave primaria di un'entità con gli apis di Entity Framework Core?
// Entity Framework
public virtual int GetKey(T entity)
{
var oContext = ((IObjectContextAdapter)_DbContext).ObjectContext;
var oSet = oContext.CreateObjectSet<T>();
var keyName = oSet.EntitySet.ElementType
.KeyMembers
.Select(k => k.Name)
.Single();
return (int)entity.GetType().GetProperty(keyName).GetValue(entity, null);
}
grazie per questa risposta. Sembra che dovrebbe funzionare. Al momento non parteciperò a questo progetto, ma mi aspetto di tornare su questo punto nel prossimo futuro. Lo proverò appena posso. – cResults
è il Context.Model aggiunto in EF7? Sto provando il cambiamento in un ambiente EF6, ma si rompe perché quella proprietà non esiste. – cResults
Sì, questa è la proprietà EF7 (Core) – YuriyP