我是EF4的新手,我想知道在存储过程中使用EF作为DAL的一部分时最好的方法。到目前为止,我有两个选择:
选项1
使用EF4,我可以创建一个复杂类型,EF将从存储过程映射我的结果。然后,我可以从DAL层返回此复杂类型,然后将其再次转换为主应用程序层中的自定义BLL对象。这个策略对我很有吸引力,因为我依靠EF4设计师来构建管道而不需要手工构建参数。它还使DAL独立,而不引用包含业务对象的程序集。我用这种方法看到的主要问题是我必须再次将DAL复杂类型水合成BLL业务对象。不确定它会如何影响性能。
选项2
让DAL引用程序集包含BLL对象,然后从DAL层返回BLL对象。我不确定这是否适合我。我将不得不手动创建存储过程参数,然后迭代DataReader以构建要返回的业务对象。这是可行的,但我宁愿让EF4设计师构建我的存储过程管道。此外,它似乎将DAL与BLL程序集耦合,我不确定是否合适。
将会对此提出一些意见和建议。
谢谢!
答案 0 :(得分:0)
还有第三种选择 - 制作业务对象实体。 EF是从数据库中持久化和检索业务对象的工具,但是您只需将数据访问层设置为需要手动将其结果转换为业务对象。这是你问题的全部来源。