Передача имени базы данных или всей базы данных как переменной - PullRequest
0 голосов
/ 28 декабря 2018

Я выполняю рефакторинг своего кода путем извлечения функций.

Изначально у меня есть одна огромная основная функция, которая сразу же получает базу данных, используя dbName, переданную извне в самой первой строке, а затем выполняет некоторые другие действия на основебаза данных.

Теперь я хочу сделать из этих маленьких вещей некоторые маленькие функции, вызываемые теперь меньшей основной функцией.

Эти маленькие функции должны иметь доступ к той же базе данных.

Do I -

  1. Передача dbName каждый раз при вызове маленькой функции и получение базы данных внутри нее

    • это кажется несколько избыточным, если у меня n маленькоефункции, то мне нужно получить базу данных n раз
  2. передать всю базу данных в маленькую функцию и использовать ее сразу

    • это может вызватьпроблемы с производительностью?

И еще вопрос:

Я знаю, что мы можем использовать

var table = database.GetCollection<table>(), чтобы получить и сохранитьстол в переменнуюпоэтому мы можем использовать его вместо того, чтобы получать его снова каждый раз, когда мы хотим что-то найти.

Но работает ли это, когда действие, которое я хочу выполнить, изменяет ?

ЕслиЯ использую table для вставки, а затем нахожу , могу ли я получить только что вставленную запись?

Я имею в виду, означает ли table таблицу до того, как я вставил?

1 Ответ

0 голосов
/ 28 декабря 2018

Ваши варианты 2 - наиболее вероятный путь, учитывая предоставленную вами информацию.

Вы не будете передавать всю базу данных в функцию, просто ссылку на нее, так как большинство объектов передаются по ссылке, не по значению (если они не являются ValueType).

table должно быть ссылкой на таблицу (например, DbSet<tablename>), а не на таблицу в ее текущем состоянии(если вы хотите, чтобы вам нужно было вызвать table.ToList(), который должен вернуть List<tablename> и сохранить его вместо этого.)

Таким образом, вызов table.Add(object) и затем table.Find(object.ID) должен вернуть объект, так как он находится в текущем состоянии.базы данных

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...