IRepository, IQueryable & MS SQL

Итак, у меня есть IRepository, который использует MongoDB, и я вполне доволен тем, как он работает с Ninject и т. Д.

DataAccessLibrary (no dependencies apart from MongoDB etc)
-> IEntity
-> IRepository
-> MongoDB\MongoRepository

MyApplicationLibrary (depends on DataAccessLibrary)
-> Entities\Client
-> Entities\etc ....

MyApplication (depends on DataAccessLibrary and MyApplicationLibrary)
-> NinjectMapping (IRepository<Client> to MongoDBRepository<Client>)

Однако, похоже, нам сейчас потребуется поддержка MSSQL. Моя проблема не в том, что я хочу сделать MSSQLRepository как таковой, это действительно то, как я могу предложить IQueryable в моем новом репозитории, как это было в моем старом (так что это не нарушает существующий код!). Я не могу создать DataContext для использования EF / Linq-To-SQL в DataAccessLibrary, не вызывая циклическую зависимость с MyApplicationLibrary (потому что он должен ссылаться на клиента).

Но если я передаю DataContext из MyApplication в репозиторий, разве это не нарушает саму идею, почему я вообще выбрал шаблон IRepository?

Есть ли способ предоставить IQueryable, независимо от того, должен ли он был использоваться в первую очередь (я видел множество постов, в которых говорилось, что это плохая идея... что жаль, что я их не видел, когда весь вещь была реализована).

0 ответов

Другие вопросы по тегам