首先,抱歉我的英语不好。
我正在开发一个有进取心的应用程序,它不是一个很大的应用程序,但我希望将来可以将这个架构重用于其他应用程序。
我正在使用EF6 DbFirst为我生成实体。 我有一个存储库层 我有一个使用存储库的服务层 Web部件是MVC 5,控制器调用服务 我正在使用依赖注入
我看到的所有示例都使用EF Code First,然后他们创建了一个在存储库项目中继承DbContext的类。
就我而言,EF已经创建了一个DbContext和我需要的所有de DbSets。就我而言,我不知道如何将DbContext传递给我的存储库。
摘录我的代码:
项目模型,由EF生成的上下文:
public partial class Entities : DbContext
{
public Entities()
: base("name=Entities")
{
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
throw new UnintentionalCodeFirstException();
}
public virtual DbSet<TCLIENTE> TCLIENTE { get; set; }
项目存储库:
private readonly ApplicationContext context;
private DbSet<TEntity> entities;
string errorMessage = string.Empty;
public Repository(ApplicationContext context)
{
this.context = context;
entities = context.Set<TEntity>();
}
public IEnumerable<TEntity> GetAll()
{
return entities.AsEnumerable();
}
我的applicationContext,我只是降序模型项目的上下文
public class ApplicationContext : Entities
{
//public ApplicationContext(DbContextOptions<ApplicationContext> options) : base(options)
//{
//}
}
服务项目:
public class UserService : IUserService
{
private IRepository<TCLIENTE> userRepository;
public UserService(IRepository<TCLIENTE> userRepository)
{
this.userRepository = userRepository;
}
public IEnumerable<TCLIENTE> GetUsers()
{
return userRepository.GetAll();
}