我有一个关于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设计我们的数据访问层。那么你能指导我:
请在这方面帮助我:哪种策略最好?或者提供任何其他策略。请提供理由。
答案 0 :(得分:2)
这是一个相当广泛的问题,没有多大意义,因为它将苹果与橙子进行比较,但我会尝试回答其中的一些问题:
NHibernate是一个ORM,MSEL是一组框架,这是两个最大的区别。 NHibernate只需要您创建一些POCO和xml文件来生成DAL。在MSEL中使用数据应用程序块时,您必须输入DAL的所有代码或使用第三方代码生成工具,如Code Smith。
组合它们是可能的,但对于数据应用程序块可能是不必要的,你实际上只需要使用一个或另一个,NHib允许你执行存储过程,所以如果有什么你不能在c#中你可以随时将它移动到SP。对于MSEL中的其他块(加密,日志记录,异常等),您当然可以将它们与NHibernate一起使用。
设计你的ORM是一个非常糟糕的主意,除非你有一个能够正确完成它的庞大团队,即便如此,如果你缺少某些功能,我也会修改现有的开源ORM。
如果你负担得起,我会选择NHibernate或llblgen。