【发布时间】:2012-05-07 15:51:25
【问题描述】:
我正在使用 Entity Framework 进行我的第二个项目,我想阅读一些关于代码是否低于其良好编码实践的意见。
我建议的架构是这样的:
因此,网站调用业务逻辑,在那里评估业务规则。 然后它调用了DALFacade,只是不管我们是访问db2还是sql server,它对于上层都是不可见的。
EF DAL,它负责与数据库对话,CODE FIRST Approach。 实体类库是带有 poco 类的项目。 实用程序是不言自明的,我可能会放一些代码,比如从活动目录中读取属性。
这是我的代码,我尽可能地简化了它
单页:
protected void BtnSubmitRequestClick(object sender, EventArgs e)
{
var ecoBonusWorkflow = new EcoBonusWorkflow
{
IsOnHold = true
};
BusinessLogic.EcoBonusRequestSave(ecoBonusWorkflow);
}
业务逻辑:
public static class BusinessLogic
{
public static void EcoBonusRequestSave(EcoBonusWorkflow ecoBonusWorkflow)
{
if (true)
{
DalFacade.EcoBonusRequestSave(ecoBonusWorkflow);
}
}
}
DALFacade:
public static class DalFacade
{
private static readonly UnitOfWork UnitOfWork = new UnitOfWork();
public static void EcoBonusRequestSave(EcoBonusWorkflow ecoBonusWorkFlow)
{
UnitOfWork.EcoBonusWorkflowRepository.InsertEcoBonusWorkflow(ecoBonusWorkFlow);
}
}
然后在 EF Dal 类库中,我使用传统的 EF 4.1 代码优先方法。 我还使用了存储库模式和工作单元。
欢迎任何意见
【问题讨论】:
-
你真的打算让你的业务逻辑类和你的 Facades 是静态的,还是只是对 Stack 的过度简化?
-
不,这就是为什么我提出这个问题来查看这类问题,我认为静态类更容易,因为您实际上不需要这些类的实例,对吧?
标签: c# entity-framework entity-framework-4