现有企业数据库的实体框架

时间:2011-06-06 12:14:04

标签: entity-framework

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

我认为WCF是要走的路,乍一看似乎EF 4是一个不错的选择,但现在我怀疑了。这是我发现的:

  1. 存储过程映射不是很好。我有数百个存储过程,我想重用。他们中的大多数都不会返回“实体”,因此存储的proc必须映射到复杂类型。许多过程使用动态sql或临时表,因此EF无法弄清楚克里特岛的复杂类型。许多过程返回多个结果集。我已经读过EF扩展有一种方法可以将存储过程映射到多个结果集,但仅限于实体,所以这对我没有帮助。
  2. 大型模型是个问题。似乎没有一种处理大型实体模型的好方法。创建较小模型的解决方法并不理想,拆分模型会失去设计支持,我错过了哪些内容?
  3. EF映射只是到目前为止。我想要重用的存储过程将多个表中的投影或信息返回到结果集中。似乎没有办法将这些结果映射到实体,我错了吗?我已经读过将2个表的结果组合成1个实体,但只有在表具有相同的主键时才有效。
  4. 人们是否在大型现有数据库中使用EF?如果不是你会推荐什么?

1 个答案:

答案 0 :(得分:0)

我在大型数据库上使用EF,但正如你所说,对你的SP的支持并不是很好。这并非特别是EF本身的失败 - ORM一般按照相同的原则工作并具有相同的“限制”。

如果您有很多SP并将它们映射到数据集,那么即使没有SP,您也必须做很多工作,不再需要引用数据集并通过系统引用您的域模型类型,因此您需要有一些方法可以将您的SP映射到您的域模型并反馈。