【问题标题】:Decoupling the Data Layer using Entity Framework使用实体框架解耦数据层
【发布时间】:2011-10-21 13:57:41
【问题描述】:

我正在使用 EF 4.0、linq to entity、VS 2010 和 SQL Server 2005 存储过程来做一个小型搜索应用程序。我已经设计了 EDM 和所需的层。表示层正确显示搜索结果。

现在的困境是搜索应该足够灵活,可以从不同的表中读取。例如,对于当前的搜索,应用程序正在从表 A 中读取数据。明天应用程序可能需要从表 B 中读取,而表 B 的列名可能与表 A 完全不同。

如何使用 EDM 将表 A 列映射到表 B 列,而不会对表示层产生任何影响。

任何建议/指针/链接将不胜感激。

非常感谢您的宝贵时间和帮助。

【问题讨论】:

    标签: entity-framework layer edmx presentation decoupling


    【解决方案1】:

    我使用了下面链接中解释的数据存储库,它显示了IDataRepositoryDataRepository 类。以及如何使用 fetch() 和 Find() 函数动态获取数据

    http://huyrua.wordpress.com/2010/07/13/entity-framework-4-poco-repository-and-specification-pattern/

    而且它工作得很好

    【讨论】:

      【解决方案2】:

      我建议您将表示层与数据分离。根据您的需要,使用可以从不同表(实体)填充的通用类创建业务层。

      因此,根据日期,泛型类(或多个类)将从表 A、表 B 或表 X 中填充。但是您的表示层会忽略这一点,只知道泛型类中的数据.

      您可以通过多种方式进行设计。一种方法是设计一个实体必须符合的接口才能填充通用类。因此,无论表结构是什么,您都需要将其中的数据映射到接口,以便填充泛型类并将其显示为搜索结果。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-23
        相关资源
        最近更新 更多