首页 文章

数据访问层策略

提问于
浏览
1

我有一个关于Microsoft的企业库数据访问应用程序块和NHibernate的查询 .

我们正处于我们的反洗钱软件的设计阶段 .

标准如下:

我们的客户类包含一对多关系的帐户类 . 模型如下:客户1-> M账户

类定义如下:

class Customer 
{ 
   private:
      int CustomerID;
      string CustomerName;
      List<string> Addresses;
      List<Account> accounts; 
} 

class Account 
{ 
   private:
      long AccountNumber;
      List<Transaction> transactions; 
      Customer customer;
}

表定义如下:

Table Customer
{
      int CustomerID;
      string CustomerName;
}

Table CustomerAddress
{
      int CustomerID;
      int Seqn;
      string Address;
}

Table Account 
{ 
      long AccountNumber;
      int CustomerID;
}

我们决定使用MSEL或NHibernate设计我们的数据访问层 . 所以你能指导我:

  • 这两种策略的优点和缺点是什么?

  • 我们应该将NHibernate与MSEL结合起来吗?

  • 我们应该采用MSEL设计的基于ORM的策略吗?

  • 或者您技术架构师的其他策略?

请帮助我这方面:哪种策略最好?或者提供任何其他策略 . 请给出你的理由 .

1 回答

  • 2

    这是一个相当广泛的问题,没有多大意义,因为它将苹果与橙子进行比较,但我会尝试回答其中的一些问题:

    • NHibernate是一个ORM,MSEL是一组框架,这些是2个最大的区别 . NHibernate只需要您创建一些POCO和xml文件来生成DAL . 在MSEL中使用数据应用程序块时,您必须输入DAL的所有代码或使用第Code Smith等第三方代码生成工具 .

    • 组合它们是可能的,但对于数据应用程序块可能是不必要的,你应该只需要使用其中一个,NHib允许你执行存储过程,所以如果你在c#本身做不到的事情你可以随时将其移动到SP . 至于MSEL中的其他块(加密,日志记录,异常等),您当然可以将它们与NHibernate一起使用 .

    • 设计你的ORM是一个非常糟糕的主意,除非你有一个能够正确完成它的庞大团队,即便如此,如果你缺少某些功能,我也会修改现有的开源ORM .

    • 如果你负担得起,我会选择NHibernate或llblgen .

相关问题