Срок службы FluentData IDbContext

Я использую FluentData ORM для.NET на своем уровне доступа к данным. Однако этот вопрос может относиться к большинству ORM.

Какова надлежащая продолжительность жизни IDbContext? Следует ли создавать новый контекст базы данных каждый раз, когда выполняется новый запрос к базе данных? У меня есть два сценария ниже, какое правильное использование? Обратите внимание, что я запрашиваю MS SQL, а также серверы MySQL. Итак, я хотел бы знать, есть ли какие-либо последствия для достижения максимального количества соединений. И да, я вызываю базу данных в несколько потоков. Являются ли оба сценария потокобезопасными?

Сценарий А:

Мой класс репозитория реализует IDisposable и содержит закрытую переменную типа IDbContext. Эта переменная создается в конструкторе и удаляется при удалении класса. В хранилище есть только один экземпляр контекста.

Сценарий Б:

Мой класс репозитория имеет закрытый метод, который возвращает новый экземпляр IDbContext. Всякий раз, когда другой метод обращается к базе данных, они вызывают этот метод, чтобы получить новый контекст базы данных.

1 ответ

Решение

Из официальной документации:


Когда вы должны избавиться?

  • DbContext должен быть удален, если вы включили UseTransaction или UseSharedConnection.
  • DbCommand должен быть удален, если вы включили UseMultiResult (или MultiResultSql).
  • StoredProcedureBuilder должен быть удален, если вы включили UseMultiResult.

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


http://fluentdata.codeplex.com/documentation

Надеюсь, это поможет кому-то.

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