我正在努力成为一个更好的开发者......
我正在使用的内容:
我一直在阅读,我想我想做的是:
我有一个基本存储库接口(interface),我的聚合存储库接口(interface)将实现...
public interface IRepository<T>
{
IEnumerable<T> ListAll();
T GetById(int id);
bool Add(T entity);
bool Remove(T entity);
}
我的 Order Repository 接口(interface)定义如下……随着我对这个学习练习的深入了解,可能会有其他方法。
public interface IOrderRepository : IRepository<Order>
{
}
我的服务类与存储库的定义基本相同,只是每个服务实现都包含业务逻辑。这些服务将在构造函数中采用存储库接口(interface)(我还没有准备好在这个练习中使用 IoC,但相信这就是我想要结束的地方)。
我很想就我在关注点分离方面的前进方向得到一些反馈。
谢谢
最佳答案
我认为您正朝着关于存储库模式的正确方向前进。关于您关于 ViewModel 类的问题,我建议您使用将业务服务方法输出的输出转换为某些所需输出的东西。例如,您的 Order 业务服务可能有一个名为 GetOrders()
的方法。 .使用自定义属性,您可以为其定义 View 类类型。 View 能够获取此方法的输出,可能将其与其他类型的数据连接起来,并将结果作为具有匿名类型的对象集合返回。在这种情况下, View 将采用 IQueryable<Order>
或 IEnumerable<Order>
作为输入并返回 IList
作为输出。
当您需要在客户端显示不同类型的数据 View 时,此方法将极大地帮助您。我们已经在我们公司的框架中使用了与此方法类似(但更复杂)的东西。
关于asp.net-mvc - 关注点分离存储库模式和 Entity Framework 3.5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1780932/