Estoy intentando actualizar mi repositorio a EF5 pero he encontrado algunos errores. He echado un vistazo alrededor de stackoverflow por errores similares descubrí algunas preguntas/respuestas, pero desafortunadamente las mismas respuestas no resolvieron mi problema.El tipo de entidad no es parte del modelo, EF 5
Esta es mi error:
The entity type User is not part of the model for the current context.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Ésta es mi clase DbContext:
public abstract class WebModelContext : DbContext
{
public WebModelContext()
: base("WebConnection")
{
Configuration.LazyLoadingEnabled = true;
}
}
Esta es mi clase de contexto que herede mi clase WebModelContext
:
public class AccountContext : WebModelContext
{
private DbSet<User> _users;
public AccountContext()
: base()
{
_users = Set<User>();
}
public DbSet<User> Users
{
get { return _users; }
}
}
Este es mi clase de repositorio:
public abstract class IRepository<T> : IDisposable where T : WebModelContext, new()
{
private T _context;
protected T Context
{
get { return _context; }
}
public IRepository() {
_context = new T();
}
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
~IRepository()
{
Dispose(false);
}
protected virtual void Dispose(bool disposing)
{
if (disposing)
{
if (_context != null)
{
_context.Dispose();
_context = null;
}
}
}
}
Ésta es mi clase AccountRepository:
public class AccountRepository : IRepository<AccountContext>
{
public List<User> GetUsers()
{
return Context.Users.ToList();
}
public User GetUser(string username)
{
return Context.Users.Where(u => u.Name == username).FirstOrDefault();
}
public User CreateUser(string username, string password, string salt, int age, int residence)
{
User user = new User
{
Name = username,
Password = password,
Salt = salt,
RoleId = 1,
CreatedOn = DateTime.Now,
Locked = false,
Muted = false,
Banned = false,
Guid = Guid.NewGuid().ToString("N")
};
Context.Users.Add(user);
return Context.SaveChanges() > 0 ? user : null;
}
}
Cualquier ayuda muy apreciada :)
Gracias por la ayuda, he intentado hacer esto justo ahora y encuentro el mismo error. Originalmente agregué su código, pero VS dijo que no reemplazaba a OnModelCreating de DbContext, por lo que reemplacé Virtual con override. Después de hacer eso, agregué un punto de interrupción a la línea 'modelBuilder.Entity();' pero no llegó al punto de interrupción y aún dio el mismo error. –
@SHTester Intente detener e iniciar servidor de desarrollo ASP.NET local/IIS – Eranga
bien, aún así el mismo error, intentaré reiniciar la máquina. –