我有一个带表的SQL Server数据库。
除此之外,我为每个使用LINQ的表都有一个类,并且具有Add,Remove,Get,Update功能。
最重要的是,我希望有更多项目特定的方法。
例如,我最高级别的功能之一是将任务分配给员工。
我的想法是拥有另一组具有此功能的类,例如,初始的Task类具有:
public static IEnumerable<Task> GetAll(Schedule schedule)
{
KezberPMDBDataContext db = new KezberPMDBDataContext();
return from p in db.Tasks
where p.ScheduleID == schedule.ScheduleID
select p;
}
例如,要分配任务,我需要GetUnscheduledTasks。我可以:
public static IEnumerable<Task> GetUnscheduled()
{
return Data.Tasks.GetAll(emptySchedule);
}
我基本上试图拥有:中等水平的低水平交换数据,以及中等水平的顶级交换数据。
我应该如何组织或重构我的代码以保持其清洁和模块化?
由于
答案 0 :(得分:1)
所以你有类似......
SQL&gt; “ORM层”&gt;业务层。 BL有例程:
“将任务分配给员工”
如果我们结束你的帖子“试图用中等水平......和顶级水平进行低水平的交换数据......”。我建议你看一下MVC模式。 Controller充当模型和视图之间的中间层。
“具有此功能的另一组类”。我假设你的意思是另一组类来协助Controller。我倾向于将这些类称为“辅助类”,直到我有足够的关系来定义一个不太抽象的名称。除了我的一般MVC / MVVM / etc模式之外,我倾向于包括所述抽象。