2010-05-11 3 views
2

У меня вопрос, который существует уже несколько лет. Поскольку все, что вы знаете, инфраструктура сущности - это инструмент ORM, который пытается смоделировать базу данных в объектно-ориентированную модель доступа. Все образцы, которые я видел, запрашивают непосредственно таблицы базы данных. Итак, какова роль представлений в базе данных? Представления использовались для более удобного моделирования базы данных, т. Е. Нескольких физических таблиц, одной логической таблицы. Это было замечательно, например, для того, чтобы скрыть сложную реляционную модель по хранимым процедурам, поскольку запрос внутри внутри них был намного проще, чем повторение объединений запросов снова и снова в каждой хранимой процедуре. Поэтому возникает вопрос: почему структура сущности настолько хороша, если хранимые процедуры не могут ее извлечь?Сущность и логика базы данных

Я попытаюсь объяснить то же самое по-другому. У вас есть таблица под названием category. У вас есть другая таблица, называемая элементами. Каждый элемент может быть в нескольких категориях, и одна категория может содержать несколько элементов. Для каждой категории я хочу рассчитать, сколько элементов (это просто, но представьте, что этот расчет имеет очень сложную формулу). И теперь возникает проблема:

Выбор 1: Создайте представление VCategory с помощью этого расчета. Выбор 2: Включить категорию таблицы в структуру сущностей, а затем расширить класс для включения вычисления.

Плюсы выбор 1: Расчет доступен каждому. Выбор контрастов 1: Вид не обновляется.

Плюсы выбор 2: Таблица обновляется Выбор опций 2: Расчет доступен только для совместимых с .NET систем.

dubts on choice one 1: как обрабатывать это обновление с помощью сущности framework ?. Импортирование представления и отображение вставки, обновления, удаление с помощью хранимых процедур ?.

dubts on choice one 2: Сохраненный способ не может быть полезен для инфраструктуры сущностей. Что делать, если одна хранимая процедура в базе данных нуждается в этом расчете ?.

+0

Вы абсолютно можете связать хранимые процедуры с EF. –

+0

, но это не главное. Представьте себе другую систему, которая не поддерживает .NET Framework. Если вы используете представления в базе данных, то другая система может воспользоваться преимуществами моделируемого домена, используя представления. или представить себе задания sqlserver, они не могут воспользоваться преимуществами структуры сущности. как это решить? –

+0

Вы также можете просматривать виды в EF. Я часто предпочитаю ставить такую ​​логику, как вы описываете в модели, поскольку ее не нужно переписывать при переносе в другое место, но вы можете сделать это в любом случае. –

ответ

1

Не очень понимает, что вы имеете в виду ...

На самом деле вы можете Prolly использовать ОРМ с видом, если они обновляемые ... так что об использовании ORM + процедур? Вы все еще можете использовать свои представления db с каркасом сущности, и вы получите модель «более дружеским образом».

Смежные вопросы