EF 4.0和存储过程:返回业务对象还是复杂类型?

时间:2011-10-19 05:12:18

标签: entity-framework-4

我是EF4的新手,我想知道在存储过程中使用EF作为DAL的一部分时最好的方法。到目前为止,我有两个选择:

选项1

使用EF4,我可以创建一个复杂类型,EF将从存储过程映射我的结​​果。然后,我可以从DAL层返回此复杂类型,然后将其再次转换为主应用程序层中的自定义BLL对象。这个策略对我很有吸引力,因为我依靠EF4设计师来构建管道而不需要手工构建参数。它还使DAL独立,而不引用包含业务对象的程序集。我用这种方法看到的主要问题是我必须再次将DAL复杂类型水合成BLL业务对象。不确定它会如何影响性能。

选项2

让DAL引用程序集包含BLL对象,然后从DAL层返回BLL对象。我不确定这是否适合我。我将不得不手动创建存储过程参数,然后迭代DataReader以构建要返回的业务对象。这是可行的,但我宁愿让EF4设计师构建我的存储过程管道。此外,它似乎将DAL与BLL程序集耦合,我不确定是否合适。

将会对此提出一些意见和建议。

谢谢!

1 个答案:

答案 0 :(得分:0)

还有第三种选择 - 制作业务对象实体。 EF是从数据库中持久化和检索业务对象的工具,但是您只需将数据访问层设置为需要手动将其结果转换为业务对象。这是你问题的全部来源。