我有一个包含服务层的MVC项目。服务类将db实体对象返回给我用来构建传递给Views的模型的控制器。通过这种方式,我的服务层不了解模型,我试图保持这种模式。MVC保持模型退出服务层 - 并非总是可行
一个典型的服务层方法将返回的IQueryable如:
public IQueryable<Store> GetAll()
{
return _context.Set<Store>();
}
但是有时我需要从说,在没有DB关系存在和2个分贝实体返回数据,因为该服务层不能返回一个匿名类型,我最终返回了一个模型,我并不高兴。
的一个例子是:
public IEnumerable<CashDrawerModel> GetTillList(int? storeId)
{
var query = from c in _context.Set<CashDrawer>()
where c.StoreId == storeId || storeId == null
join cd in _context.Set<CashDrawerActivity>() on c.Id equals cd.CashDrawerId into joinedT
from j in joinedT.DefaultIfEmpty()
group joinedT by c into g
select new CashDrawerModel
{
...
我怎样才能避免这种情况?我是否有必要担心保持这种分离,还是实际上表明数据库设计不佳并需要重构?