设计模式用于存储过程的只读操作?

时间:2014-06-13 18:34:24

标签: c# sql-server design-patterns .net-4.5

我正在尝试重构\重新设计一些代码,但我陷入了一个我不知道如何继续的地步。我通常会使用实体框架并为适当的表创建一个存储库和工作单元,但我没有特别使用任何表,只是存储过程的结果,这些结果分布在多个表中或由动态SQL完成。

此项目不会使用任何创建,更新或删除命令。是否建议为每个存储过程编写返回POCO并创建某种IReadOnlyRepository?或者我会一起避免使用DAL,只是从DataReader读取结果并将其合并到我的业务逻辑中?

TL; DR

在进行只读操作时是否有使用O / RM的意义?如果是这样,它的设计模式是什么,与标准的Repository \ Unit of Work模式不同?

1 个答案:

答案 0 :(得分:2)

您仍然可以将实体框架与存储过程一起使用。

生成.EDMX文件并映射您需要访问的存储过程

例如:

public override List<AdminUser> GetAll() {
        using (var context = new Scope_v5Entities()) 
            return context.getAllAdmin().ToList();
    }

在此示例中,getAllAdmin是存储过程。

由于您已经制定了相应的程序,因此在我看来这是最有效的方法。

您可以在代码中创建标准数据访问层,就像在EF中直接对表编写查询一样。