CreditoImobiliarioBB.Web
所有接口都在这里定义。参考了项目CreditoImobiliarioBB.EntityFramework
和EF6。
此处未定义配置(我们使用 FluentApi)或迁移。
CreditoImobiliarioBB.EntityFramework
这里定义了我们的通用存储库和 DbContext。所有配置和迁移都在这里实现。
CreditoImobiliarioBB.Domain
我们的设计领域。这是我们所有的领域类和接口(例如IEntity
)
CreditoImobiliarioBB.Repository
这是存储库实现。例如EmployeesRepository
错误
当我们运行我们的应用程序时,会出现以下错误:
为上下文“CreditoImobiliarioContext”启用了迁移,但数据库不存在或不包含映射表。使用迁移来创建数据库及其表,例如通过从包管理器控制台运行“更新数据库”命令。
注意事项
数据库已
EntityTypeConfiguration<>
通过“更新数据库”使用所有配置创建错误发生在
CreditoImobiliarioBB.EntityFramework
泛型类的项目中Repository
存储库.cs
线路错误return _unitOfWork.Context.Set<T>().Where(expression);
public abstract class Repository<T> : IRepository<T>
where T : class, IEntity
{
private readonly EFUnitOfWork _unitOfWork;
public Repository(IUnitOfWork unitOfWork)
{
_unitOfWork = (EFUnitOfWork)unitOfWork;
}
public void Delete(T obj)
{
_unitOfWork.Context.Set<T>().Remove(obj);
}
public void Store(T obj)
{
if (_unitOfWork.Context.Entry(obj).State == System.Data.Entity.EntityState.Modified)
_unitOfWork.Context.Set<T>().Attach(obj);
else
_unitOfWork.Context.Set<T>().Add(obj);
}
public IQueryable<T> All()
{
return _unitOfWork.Context.Set<T>();
}
public object Get(Type entity, int id)
{
return _unitOfWork.Context.Set(entity).Find(id);
}
public T Get(Expression<Func<T, bool>> expression)
{
return _unitOfWork.Context.Set<T>().SingleOrDefault(expression);
}
public T Get(int id)
{
return _unitOfWork.Context.Set<T>().Find(id);
}
public IQueryable<T> Query(Expression<Func<T, bool>> expression)
{
return _unitOfWork.Context.Set<T>().Where(expression);
}
public IUnitOfWork UnitOfWork
{
get { return _unitOfWork; }
}
}