Вот интересная проблема. Есть ли способ написать некоторый код, используя LINQ to SQL, который способен выполнять таблицу UPDATE, зная только, что таблица, в которой она дается, содержит столбцы x, y, z, но не зная во время компиляции, с какой таблицей он имеет дело? *
У меня есть несколько таблиц в моей схеме БД, которые совместно используют несколько столбцов, и мне нужно применить операцию UPDATE на основе наборов, которая идентична по своей логической процедуре независимо от того, с какой из таблиц мы имеем дело.
Вот простой пример: скажем, у вас есть 3 таблицы, в которых реализована иерархия модели смежности (т. Е. Каждая строка содержит идентификатор первичного ключа и столбец идентификатора родительского идентификатора с собственной ссылкой). Каждая из таблиц также имеет логический флаг «Отключено». Когда я отключаю экземпляр какой-либо из этих сущностей, он должен каскадно проходить через дочерние элементы, т.е.
ОБНОВЛЕНИЕ MyTable
SET Disabled = 1
WHERE ID = @ID или Parent_ID = @ ID
Я не хочу писать подобные операторы LINQ для каждой сущности, это нарушает DRY. Это может показаться тривиальным в этом примере, но, поскольку пример становится все более сложным, вы дублируете растущее количество кода. Я уверен, что это возможно, используя интерфейс и, возможно, дженерики, но я изо всех сил пытаюсь найти элегантное решение.