Рекомендации по проектированию: Entity Framework полезен для хранимых процедур? - PullRequest
2 голосов
/ 22 ноября 2010

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

Я не уверен, что получил его ...

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

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

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

Спасибо,

Майкл.

Ответы [ 2 ]

0 голосов
/ 26 ноября 2010

После некоторого исследования, я думаю, я начинаю на правильном пути. Следующие статьи были очень полезны: Моделирование Entity Framework: наследование таблиц на иерархию

см. Также: Моделирование Entity Framework: Разделение сущностей

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

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

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

0 голосов
/ 22 ноября 2010

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

...