【发布时间】:2015-01-30 20:02:24
【问题描述】:
我正在 WPF 中启动一个新应用程序,我希望它具有良好的体系结构,以便它可以维护。我正在使用实体框架,到目前为止我的计划是。
• 视图层:一个带有启动视图和主菜单的项目(启动)。每种视图都有不同的项目,例如,如果我有与 Books 相关的视图,那么我将有一个名为 BooksView 的项目,其中包含所有视图。
• 业务层:每种类型的业务类一个项目,例如 BusinessBooks。每个人都有一个存储库,其中包含特定的操作和任何帮助器来进行计算(如果需要)。
• 数据访问层:它包含一个名为 Entity Framework 的文件夹,其中包含 DBContext 和 T4 生成的类,以及一个名为 ContextCreator 的类,该类具有以下代码:
public class ContextCreator : IDisposable
{
private MesaOperativaDB context;
public ContextCreator()
{
context = new MesaOperativaDB();
}
public MesaOperativaDB getContext()
{
return context;
}
public void Dispose()
{
context.Dispose();
}
}
然后一个视图会使用需要的业务层的任何项目的静态存储库,而这个存储库会使用上面的类来获取 DBContext 并像这样使用它:
public static List<Novedades> GetNovedades()
{
using (ContextCreator db = new ContextCreator())
{
IQueryable<Novedades> novedades = db.getContext().Set<Novedades>().AsQueryable();
return novedades.ToList();
}
}
这种方法有什么好处吗? 提前谢谢你们。
【问题讨论】:
-
如果它只是一个客户端应用程序,那么这是一个很好的关注点分离
标签: c# wpf entity-framework architecture data-access-layer