Разделение уровня данных с помощью Entity Framework - PullRequest
1 голос
/ 21 октября 2011

Я использую EF 4.0, linq to entity, VS 2010 и хранимые процедуры SQL Server 2005 для небольшого поискового приложения.Я разработал EDM и необходимые слои.Слой презентации правильно отображает результаты поиска.

Дилемма сейчас в том, что поиск должен быть достаточно гибким, чтобы читать из разных таблиц.Например, для текущего поиска приложение читает из таблицы A. Завтра приложению может потребоваться чтение из таблицы B, которая может иметь совершенно разные имена столбцов, чем таблица A.

Используя EDM, как я могу отобразить таблицу Aстолбцы в столбцы таблицы B, не влияя на уровень представления.

Любые предложения / указатели / ссылки будут с благодарностью.

Большое спасибо за ваше время и помощь.

Ответы [ 2 ]

3 голосов
/ 21 октября 2011

Я использовал репозиторий данных, описанный в приведенной ниже ссылке, он показывает классы IDataRepository и DataRepository. также, как вы можете извлекать данные динамически, используя функции fetch () и Find ()

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

и работает нормально

1 голос
/ 21 октября 2011

Я бы порекомендовал отделить ваш уровень представления от ваших данных. Создайте бизнес-уровень с общим классом, который можно заполнять из разных таблиц (сущностей) в зависимости от ваших потребностей.

Таким образом, в зависимости от дня, универсальный класс (или классы) будет заполняться из таблицы A, или таблицы B, или таблицы X. Однако ваш уровень представления данных будет игнорировать это и знать только данные из общего класса .

Вы можете разработать это несколькими способами. Одним из способов может быть разработка интерфейса, которому должны соответствовать объекты, чтобы заполнить общий класс. Поэтому, независимо от структуры таблицы, вам необходимо отобразить данные в ней на интерфейс, чтобы заполнить универсальный класс и, следовательно, отобразить его как результаты поиска.

...