【发布时间】:2019-11-20 18:59:36
【问题描述】:
阅读了许多文章,指出不建议将 UOW 和存储库模式放在 EF Core db 上下文之上,我几乎同意并即将在我的一个新项目中实施注入 IDBContext 的服务。
我说差不多了,因为我以前使用过一个功能,但我不明白如何在没有存储库的情况下实现。
在之前的项目中,我在 EF 之上使用了 UOW 和存储库模式,并从服务访问它们。以下方法将位于存储库中,此后可以通过从任何服务调用 uow.StudentRepository.Get(id) 来调用。
public async Task<Student> Get(Guid id)
{
return await _context.Students
.Include(x => x.Course)
.Include(x=>x.Address)
.Include(x => x.Grade)
.FirstOrDefaultAsync(x => x.Id == id);
}
如果没有存储库,从 IDBContext 查询,我将不得不调用...
_context.Students
.Include(x => x.Course)
.Include(x=>x.Address)
.Include(x => x.Grade)
.FirstOrDefaultAsync(x => x.Id == id);
...每次我想做这个查询。这似乎是错误的,因为它不会是干燥的。
问题
有人可以建议一种方法,我可以在没有存储库的情况下在一个地方声明此代码吗?
【问题讨论】:
标签: entity-framework-core repository unit-of-work