我用这种架构创建了一个应用程序:
- 我的项目。型号:包含 POCO。例子:
public class Car { public int Id { get; set; } public string Name { get; set; } }
- 我的项目。存储库:包含存储库和 UnitOfWork
public class UnitOfWork { // ... public Repository<Car> Cars { get; set; } // ... } public class Repository<T> { // ... // Add / Update / Delete ... // ... }
- 我的项目。网页:ASP.Net MVC 应用程序
现在我想找到一种使用方法与数据交互的方法。例如,在MyProject.Model.Car
我想添加一个将获取具有非导航属性的数据的方法,一个名为“GetSimilarCars()”的方法。问题是存储库无法与其他存储库交互,因此无法对数据库执行操作。
我真的不知道如何以简单的方式做到这一点,以及在我的架构中放置它的最佳位置是什么。
另一个示例可能是UserGroup.Deactivate()
,此方法将停用每个用户并通过电子邮件向他们发送通知。当然我可以把这个方法放在 Web 应用程序控制器中,但我认为这不是放置这种可以在应用程序的许多地方调用的代码的地方。
注意:我正在使用实体框架。
关于如何实施此类操作的任何建议?