2010-10-08 63 views
1

我有一个ASP.NET MVC 2项目。我已经解耦了图层。我有一个服务层和一个存储库层。 控制器调用服务方法,只有服务层调用存储库中的方法。关于结构的问题

问题是: 我的存储库类中的方法使用LINQ连接。从这个方法,我想返回一个类型合并来自联合表的一些数据。 (即名称= a.Name,位置= b.Position)我总是返回我的资源库类中的IEnumerables。所以在这种情况下,似乎我需要为(Name,Position)定义一个新类型,并从存储库函数返回该类型。但是,那么,我必须将该类重新映射到其他ViewModel类。 (因为我在分离关注点,我不应该在版本库中使用viewmodel类?)这导致了许多不同的类。 EF类,连接表的类和视图模型类。

我在正确的道路上吗?

请赐教。

谢谢

回答

0

请考虑在存储库层定义这些类。基本上他们是DTO课程,听起来像你在我已经采取的轨道上。

为什么您期望将该类重新映射到某个其他ViewModel类?

public class EmpPosition() 
{ 
    public property Name{get;set;} 
    public property Position{get;set;} 
} 

//Repo 
public IEnumerable<EmpPosition> GetEmployeePositions() 
{}