1

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

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

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

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

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

4

2 回答 2

3

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

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

它工作得很好

于 2011-10-21T14:08:42.510 回答
2

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

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

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

于 2011-10-21T14:17:01.353 回答