Информация об изменениях

Сообщение Re[13]: Архитектура доступа к бд от 17.04.2019 18:39

Изменено 17.04.2019 18:40 okon

Re[13]: Архитектура доступа к бд
D>Что-то типа (можно и поприятней подход придумать):
D>
D>using (var db = new DataConnection())
D>{
D>   db.StatementHints.Add(@"/*+ LEADING(e2 e1) USE_NL(e1) INDEX(e1 emp_emp_id_pk) 
D>           USE_MERGE(j) FULL(j) */");
D>}
D>


Но в этом случае ты как раз теряешь то с чего начиналась тема , что эта прослойка заменяет абстракцию IRepository.
Тут ты указал специфику Оракла и этот же код нельзя будет также использовать на MSSQL.
Т.е. потребуется как минимум 2 реализации : с хинтами для оракла, с хинтами для mssql, а в реальной жизни скорее всего не только хинты но и сами запросы немного будут разные для разных СУБД
если придется оптимизировать.


Второй момент — особенности в SQL Oracle, например использование Sequence, как написать например
select schema.sequence.NEXTVAL from dual;
Re[13]: Архитектура доступа к бд
D>Что-то типа (можно и поприятней подход придумать):
D>
D>using (var db = new DataConnection())
D>{
D>   db.StatementHints.Add(@"/*+ LEADING(e2 e1) USE_NL(e1) INDEX(e1 emp_emp_id_pk) 
D>           USE_MERGE(j) FULL(j) */");
D>}
D>


Но в этом случае ты как раз теряешь то с чего начиналась тема , что эта прослойка заменяет абстракцию IRepository.
Тут ты указал специфику Оракла и этот же код нельзя будет также использовать на MSSQL.
Т.е. потребуется как минимум 2 реализации : с хинтами для оракла, с хинтами для mssql, а в реальной жизни скорее всего не только хинты но и сами запросы немного будут разные для разных СУБД
если придется оптимизировать.


Второй момент — особенности специфичные функции Oracle, например использование Sequence, как написать например
select schema.sequence.NEXTVAL from dual;