Контекст: Я пытаюсь понять шаблон UnitOfWork и его связь с репозиториями.Совместное использование NpgsqlСоединение со всеми репозиториями
Но у меня есть основные вопросы, связанные с классом NpgsqlConnnection.
My UnitOfWork содержит частный член поля, который является NpgsqlConnection: uow_connection. И мой репозиторий имеет конструктор, который принимает параметр NpgsqlConnection в качестве параметра и сохраняет его в элементе поля тоже.
[1] Можно ли иметь такой дизайн? (обмен uow_connection среди всех необходимых репозиториев).
Поскольку мой репозиторий не реализовать IDisposable и NpgsqlConnection, кажется неуправляемым Ressource, если сборщик мусора освобождает мое хранилище объект, [3] будет соединение все еще жив?
Я беспокоюсь о том, что весь необходимый репозиторий для текущей транзакции будет иметь одинаковую uow_connection, переданную по значению.
([2] Это нормально думать, что если IDisposable реализуется, так что неуправляемый Ressource или управляемый Ressource может реализует IDisposable и все еще управляемый Ressource?)
Я меченый мой вопросы, поэтому их легко будет сослаться на них.
Спасибо, что нашли время, чтобы прочитать мой вопрос.