Ich versuche, mein Repository auf EF5 zu aktualisieren, habe aber einige Fehler festgestellt. Ich habe mich in stackoverflow nach ähnlichen Fehlern umgesehen, ein paar Fragen/Antworten gefunden, aber leider haben die gleichen Antworten mein Problem nicht gelöst.Der Entitätstyp ist nicht Teil des Modells, EF 5
Das ist mein Fehler:
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.
Das ist meine DbContext Klasse ist:
public abstract class WebModelContext : DbContext
{
public WebModelContext()
: base("WebConnection")
{
Configuration.LazyLoadingEnabled = true;
}
}
Das ist meine Kontextklasse ist, dass meine WebModelContext
Klasse erbt:
public class AccountContext : WebModelContext
{
private DbSet<User> _users;
public AccountContext()
: base()
{
_users = Set<User>();
}
public DbSet<User> Users
{
get { return _users; }
}
}
Das ist mein Repository-Klasse:
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;
}
}
}
}
Das ist meine AccountRepository Klasse:
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;
}
}
Jede Hilfe sehr geschätzt :)
Danke für die Hilfe zu lösen, habe ich versucht zu tun das gerade jetzt und ich stoße auf denselben Fehler. Ich habe ursprünglich Ihren Code hinzugefügt, aber VS hat gesagt, dass das OnModelCreating nicht von DbContext überschrieben wurde, also habe ich virtual durch override ersetzt. Nachdem ich das getan habe, habe ich einen Breakpoint zur Zeile 'modelBuilder.Entity();' hinzugefügt, aber es hat den Haltepunkt nicht erreicht und immer noch denselben Fehler ausgegeben. –
@SHTester Versuchen Sie, lokalen ASP.NET Development Server/IIS zu stoppen und zu starten – Eranga
okay, habe getan, immer noch den gleichen Fehler, ich werde versuchen, den Rechner neu zu starten. –