EF:Unit,Repository,BusinessLogic

时间:2013-03-28 09:40:08

标签: c# repository-pattern business-logic

@@ EDIT 我会尽力更好地解释我的问题,并为我之前困惑的帖子道歉。

据我所知,业务逻辑组件的主要目的是覆盖所有业务逻辑操作,无论使用何种技术(asp.net,WinForm,Wpf等)。

这就是全部,很简单。 我可能在DAL组件上使用UnitOfWork模式,这允许我在DB类型和其他存储技术之间保持解耦,然后构建BLL以集成关于CRUD操作的所有内部逻辑。

例如:

public class BLLDocument
{
   protected IUnitOfWork _unit;

public BLLDocument()
{
   _unit = MyFactory.GetUnit();
}

public void AddDocument(DocumentEntity doc, CustomerEntity customer)
{
   try
   {
      // Some check here about the entities I'm being to add
      // As you can see, my logic force you to send two entity for insert a document
     _unit.GetRepository<Document>().Insert(doc);
     _unit.GetRepository<CustomerEntity>().Insert(customer);
     _unit.Save();
   }
   catch(Exception exc)
   {
      // other logic here:
      _unit.Rollback();
      ErrorHandler.Handle(exc);
      // or
      ErroroLogger.Log(exc);
   }
}

}

好吧,现在我需要编写一个简单的ASP.NET应用程序作为UI,并使用我的业务逻辑组件来执行一些CRUD操作。 对于某些gridview或其他UI控件来说,设置它的自定义数据源总是非常无聊,相反,编写一个简单的继承ObjectDataSource可以用来绑定来自和转到业务逻辑组件的所有数据。 。 我认为,对于我的所有业务类,我需要找到一个常见的操作,例如: (插入 - 编辑 - 删除 - 选择)。

嗯,看起来不错......不确定。 事实上,在我之前的例子中,我有一个需要两个实体参数的AddDocument方法,并且它总是真实的,我们经常执行一个“单一”操作,它依赖于多个因素(在我的例子中,DocumentEntity和CustomerEntity用于AddDocument操作) )。

我认为这是一个常见的乏味问题,因此: 我怎样才能放置另一个组件以便进行简单的数据绑定操作,例如,在asp.net世界中?

0 个答案:

没有答案