【发布时间】:2011-10-21 07:51:41
【问题描述】:
我正在为非营利组织开发网络应用程序。 (该应用程序注册当天的工人,跟踪他们的个人信息,接受工作订单,并提供一个界面来将注册的工人分配给工作订单)我在 SQL Server 中有大约 8 个表。我从 Sanderson 关于 MVC 的书开始,并尝试实现他推荐的模式:IoC、关注点分离、DI...
这是我的上下文定义:
public DbSet<Person> Persons { get; set; }
public DbSet<Worker> Workers { get; set; } //All workers are persons, but not all persons are workers.
public DbSet<WorkerSignin> WorkerSignins { get; set; } //1 entry per worker, per day (barcode scanner)
public DbSet<Image> Images { get; set; }
public DbSet<Employer> Employers { get; set; } //1 employer has many work orders
public DbSet<WorkOrder> WorkOrders { get; set; } //1 work order has many work assignments
public DbSet<WorkAssignment> WorkAssignments { get; set; } //1 assignment -> space for worker
public DbSet<WorkerRequest> WorkerRequests { get; set; }
public DbSet<Lookup> Lookups { get; set; } //configuration, dropdowns, other stuff
该应用程序已经投入生产了几个月——非营利组织有临时输入过去的订单和数据以用于报告目的,因此创纪录的数量正在迅速增长。他们遇到了一些性能瓶颈,当我修复它们时,我想在正确的层修复它们。
在多个实例中,我需要显示来自多个表的信息。例子:
- Worker 的显示从 Person 中提取名字和姓氏(使用 EF 集合)
- 从 Worker 和 Person 中提取 WorkerSignin 的显示
- 从 WorkOrder 中提取的 WorkAssignment 的显示
那么,在 #1 的情况下,是让我的 Worker 服务拉入 Person 服务,还是让 Worker Repository 拉入 Person 存储库?或者,我应该创建一个新的存储库,例如结合来自 Person 和 Worker 表的信息的“CompleteWorker”吗?
【问题讨论】:
标签: c# asp.net-mvc entity-framework model-view-controller separation-of-concerns