В моих проектах у меня часто нет отдельного уровня доступа к данным, но мне нравится добавлять некоторые исходные SQL-методы в мои объекты по соображениям производительности.Получить DbContext внутри Entity
Итак, у меня есть MassUpdateSomethingAndPersist() в одном из моих классов Entity. Для массового обновления мне нужно позвонить dbContext.Database.ExecuteSqlCommand
изнутри Entity. Но, конечно, мне нужна ссылка на DbContext.
Вопрос
Можно ли получить DbContext внутри Сущности? Использование размышлений для этого не является проблемой для меня, потому что это относительно тяжелые операции в любом случае.
У вас есть хороший источник, который может объяснить мне, почему это такая плохая практика (для средних проектов) - до тех пор, пока этот метод не будет понятен этой базе данных? Просто работа с Entities притворяется, что за ней нет (медленных) операций с базой данных, что оказалось неэффективным для моих проектов. –
Ну, это действительно хорошая практика OO. Ключевые слова: SRP, Разделение проблем, Принцип инверсии зависимостей. Ознакомьтесь с принципами SOLID (например, здесь: http://www.codeproject.com/Articles/60845/The-S-O-L-I-D-Object-Oriented-Programming-OOP-Prin). Ваше предположение по крайней мере нарушит принципы инверсии зависимостей и единой ответственности. –
Да, я знаю ТВЕРДОЕ, но мне нравятся некоторые практические примеры. Как я уже сказал, притворяясь, что нет (медленных) операций с базой данных за Entities **, ** доказано, что не работает для моих проектов.Добавляя (хорошо названные) методы, которые выполняются в некоторых очень специфических случаях, необработанный SQL не оказался для меня проблемой ** еще **. Может быть, хорошая тема для другого вопроса :) –