2011-06-06 48 views
1

我正在为大型SQL Server数据库(2008 R2)创建服务层,该数据库当前是具有强类型数据集的winforms POS应用程序的后端。现有企业数据库的Enity Framework

我想WCF是要走的路,乍看之下看起来EF 4是一个不错的选择,但现在我怀疑了。这里是我发现的:

  1. 存储过程映射不是那么好。我有数百个我想要重复使用的存储过程。他们中的大多数不会返回一个“实体”,因此存储的特效将不得不映射到复杂类型。许多proc使用动态SQL或临时表,所以EF无法弄清楚需要克服的复杂类型。许多特效返回多个结果集。我读过EF扩展有一种方法来映射存储过程与多个结果集,但仅限于实体,所以这并没有帮助我。
  2. 大型模型是一个问题。似乎没有一种处理大型实体模型的好方法。创建较小模型的解决方法并不理想,并且拆分模型失去了设计支持,我错过了什么?
  3. EF映射只能到目前为止。我想要重复使用的存储过程将来自多个表的信息返回到结果集中。似乎没有办法将这些结果映射到实体,我错了吗?我已阅读将2个表的结果合并到1个实体中的情况,但只有当这些表具有相同的主键时才有效。

在大规模的现有数据库中是否使用EF?如果不是,你会推荐什么?

回答

0

我已经在大型数据库上使用了EF,但是正如你所说的那样,对于SPs的支持并不是很好。这并不是EF本身的失败 - 一般来说,ORM在相同的原则下工作并具有相同的“限制”。

如果您有很多SP并将它们映射到数据集,即使没有SP,也不必再引用数据集并通过您的系统引用域模型类型,所以您需要做很多工作无论如何,需要有一些方法将你的SP映射到你的域模型。