2010-11-22 2 views
2

Я новичок в .NET и в начале процесса разработки интерфейсного приложения для базы данных и ищу некоторые советы.совет по дизайну: платформа Entity Framework полезна для хранимых процедур?

Я не уверен, я понимаю ...

БД очень сильно нормализуется, но предоставляет множество хранимых процедур абстрагировать логическую модель (напр. Выберите sproc возвращает набор данных одного из нескольких таблиц тесно отражающий бизнес-объект, вставка/обновление sprocs для нескольких таблиц и т. д.)

Как мне создать DAL? Я не уверен, в чем преимущество платформы Entity Framework в этом контексте. При генерации он отражает нормализованную схему БД, а не ее абстракцию. Или если я сопоставляю sprocs для его создания (что требует некоторой работы, поскольку T-SQL в sprocs является динамическим и с объединениями), я получаю бизнес-объекты в порядке, но не вижу преимущества: объекты представляют единственная «абстрактная» таблица, а не набор объектов с Datarelations, sprocs обрабатывает вызовы нескольких таблиц. Кажется, больше работы для сопоставления сгенерированных событий изменения с sprocs, чем для прямого вызова sprocs.

Что мне не хватает?

Thanks,

Michael.

+0

Я не могу понять, что вы действительно хотите сделать. Первый вопрос: как бы вы хотели определить свою модель сущности - сделайте это сначала, а затем отредактируйте базу данных, чтобы отразить ее. EF не будет делать никакой магии, сопоставление db прямо с объектами является достаточно сложной задачей, поэтому не ожидайте слишком многого. – kubal5003

+0

Конкретный пример: у меня есть таблицы Person и Organization, каждая из которых связана с таблицей адресов в отношениях «многие ко многим» (промежуточные таблицы с дополнительными свойствами). Логика DB и sprocs только открывают (или обновляют): Person table, Org table, PersonAddress table и OrgAddress, абстрагируя промежуточные таблицы (та же логика для телефонов и т. Д.). Хотя я просто создаю отдельные наборы данных ST: Person (+ связанные таблицы), Organization и т. Д., Но потом я забыл о EF? Извините, я, очевидно, новичок ... – Mike

ответ

0

Вы можете сделать это с помощью EF, но дизайнер вам не поможет; он не знает, как получить тип объекта из хранимой сигнатуры proc. Вам нужно будет написать EDMX вручную. CTP 4 code-first может быть проще, но я никогда не пробовал.

0

После некоторых исследований, я думаю, что я начинаю быть на правильном пути. Следующие статьи были очень полезны: Entity Framework Modeling: Table Per Hierarchy Inheritance

Смотри также: Entity Framework Modeling: Entity Расщепление

Чтобы было ясно, что я хотел абстрагировать схемы БД в модели EF. (Я не хотел, чтобы сущность представляла «ничего», как отношение «многие ко многим»).

Помимо этих методов моделирования, я использовал представления для генерации модели EF и добавил sprocs для CRUD.

Как я уже сказал, я новичок. Дайте мне знать, если я ошибаюсь ...

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