【发布时间】:2013-11-05 06:50:59
【问题描述】:
我用这种架构创建了一个应用程序:
- MyProject.Model:包含 POCO。示例:
public class Car { public int Id { get; set; } public string Name { get; set; } }
- MyProject.存储库:包含存储库和 UnitOfWork
public class UnitOfWork { // ... public Repository<Car> Cars { get; set; } // ... } public class Repository<T> { // ... // Add / Update / Delete ... // ... }
- MyProject.Web:ASP.Net MVC 应用程序
现在我想找到一种使用方法与数据交互的方法。例如,在MyProject.Model.Car 中,我想添加一个方法来获取具有非导航属性的数据,该方法名为“GetSimilarCars()”。问题是存储库无法与其他存储库交互,因此无法对数据库执行操作。
我真的不知道如何以简单的方式做到这一点,以及在我的架构中放置它的最佳位置是什么。
另一个例子可能是UserGroup.Deactivate(),此方法将停用每个用户并通过电子邮件向他们发送通知。当然我可以把这个方法放在 Web 应用的 Controller 中,但是我觉得这里不适合放这样的代码,可以在应用的很多地方调用。
注意:我使用的是实体框架。
对如何实施此类操作有什么建议吗?
【问题讨论】:
标签: c# asp.net-mvc entity-framework repository-pattern