Добавить EF6 в проект библиотеки классов бритвы, который будет использоваться многими проектами BLAZOR?

Можно ли добавить EF6 в библиотеку классов бритвы? Цель состоит в том, чтобы многие компоненты использовались совместно с другими проектами BLAZOR, но для многих из этих элементов управления требуется доступ к базе данных, которая одинакова для всех проектов внутри этого решения. Кроме того, я предполагаю, что доступ к базе данных будет осуществляться через контроллер, поскольку невозможно внедрить как службу. Это верно ?


person Ben Junior    schedule 02.10.2020    source источник


Ответы (1)


Можно ли добавить EF6 в библиотеку классов бритвы?

Да, но вы должны немедленно ограничить эту библиотеку на стороне сервера Blazor.

многие из этих элементов управления требуют доступа к базе данных

Это не лучшая архитектура

Я предполагаю, что доступ к БД будет через контроллер

Не обязательно на стороне сервера, вы можете внедрить DbContext в свои страницы и компоненты.

Когда у вас есть компоненты, которые сильно зависят от ваших классов Entity и бизнес-логики, тогда библиотека классов Razor, возможно, не лучший выбор.

Когда вы действительно этого хотите, создайте определенный уровень с независимыми от хранилища моделями и интерфейсами для сервисов. Это два уровня в ядре луковая архитектура.

Ваш компонент может зависеть от интерфейсов, и основное приложение может их реализовать.

person Henk Holterman    schedule 03.10.2020