2013-02-22 3 views
0

Я создаю приложение ASP.NET MVC 4 и хочу сделать его максимально гибким.ASP.NET MVC Data Entity design

Я создал абстрактные классы доступа к базе данных и отдельные конкретные реализации из них (доступ SQL Server).

Это хорошо работает с ninject, который автоматически связывает правильную реализацию с построенными контроллерами.

Проблема, которую я сейчас решаю, заключается в том, что одна из моих сущностей (пользовательская сущность) имеет несколько связанных объектов (объект задачи) (отношение 1xn), поэтому я хотел создать свойство в этом классе сущности, которое вернет сбор всех связанных задач пользователя.

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

Каким будет правильный подход здесь?

Я знаю, что можно создать метод, который возвращает Задачи, но этот метод также должен иметь параметр, который будет представлять собой конкретную реализацию базы данных.

ответ

1

Я думаю, что вам что-то не хватает. Объекты домена (Пользователь, Задачи и т. Д.), А также то, как и где вы их сохраняете (доступ к базе данных в этом случае), - это две разные вещи.

Поскольку вы, как вы сказали, разрабатываете «гибкую» архитектуру на N слоях, я бы посоветовал вам сосредоточиться на разработке объектов домена, которые не заботятся о том, как они будут представлены на вашем БД (возможно, один -to-many).

В этом случае ваш класс User будет иметь свойство, которое будет представлять собой список Tasks.