Каков наилучший метод для реализации дополнительных функций на уровне базы данных, который использует Linq-to-SQL? В настоящее время я смотрю на реализацию функций для добавления информации на основе предустановок и аналогичных задач?
Для вставки, обновления и удаления требуется доступ к DataContext
, а в классах Table
у вас нет доступа к контексту. Я видел решения, которые используют Singletons, но это похоже на взлом, и мне интересно, сталкивался ли кто-нибудь еще с этой проблемой и каковы были ваши решения? Есть ли лучший способ все вместе реализовать аналогичную функциональность.
Причина, по которой я хотел добавить эту функцию на уровень базы данных, заключается в том, что у меня есть несколько приложений, которые используют одни и те же объекты базы данных, и я хочу иметь возможность использовать эти функции из всех приложений, поэтому мне не нужно переписывать много кода.
Это не совсем то, что я имел в виду. Я хочу иметь возможность выполнять сложные действия, такие как обновление одной таблицы и добавление записи в другую таблицу на основе информации из первой.
Допустим, я выбрал запись о клиенте и хочу обновить ее информацией, и когда это произойдет, я хочу добавить еще одну запись в таблицу «Обновления», чтобы отслеживать, когда произошли обновления и кто их сделал. Это только пример, конечно. Вещи, которые нужно сделать, могут быть более сложными.
По сути, я хочу добавить метод к объекту таблицы, чтобы выполнить модификации определенной строки в этой таблице, а затем выполнить вставки и обновления для других объектов. Я знаю, что вы можете использовать частичные классы, и я делаю это уже широко.
Пример:
db.Customers.Where(c => c.CustomerID == 5).AddOrder(orderDetails);
Мне кажется, что я не могу выразить свою проблему словами, чтобы она была понятна:)