Mic*_*ael 6 entity-framework dbcontext entity-framework-5
我正在尝试将我的存储库更新为EF5,但遇到了一些错误.我已经看了一下stackoverflow,因为类似的错误发现了一些问题/答案,但不幸的是,相同的答案并没有解决我的问题.
这是我的错误:
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.
Run Code Online (Sandbox Code Playgroud)
这是我的DbContext类:
public abstract class WebModelContext : DbContext
{
public WebModelContext()
: base("WebConnection")
{
Configuration.LazyLoadingEnabled = true;
}
}
Run Code Online (Sandbox Code Playgroud)
这是继承我的WebModelContext
类的上下文类:
public class AccountContext : WebModelContext
{
private DbSet<User> _users;
public AccountContext()
: base()
{
_users = Set<User>();
}
public DbSet<User> Users
{
get { return _users; }
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的存储库类:
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;
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的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;
}
}
Run Code Online (Sandbox Code Playgroud)
任何帮助非常感谢:)
EF可能无法获取您声明的实体类型.覆盖OnModelCreating
并将User
实体添加到模型中.
public class AccountContext : WebModelContext
{
private DbSet<User> _users;
public AccountContext()
: base()
{
_users = Set<User>();
}
public DbSet<User> Users
{
get { return _users; }
}
protected virtual void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<User>();
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
20503 次 |
最近记录: |