LINQ to SQL сгенерированные функции, как написать универсальную функцию для вставки, обновления и удаления - PullRequest
1 голос
/ 12 декабря 2011

Это может быть проблема в отношении дженериков и / или рефлексии ... но я думаю, кто-то более опытный, чем я могу сказать.

Итак, у меня есть класс DataContext, сгенерированный SQLMetal.exe.

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

Что я заметил, так это то, что все эти функции выглядят практически одинаково. Например, Insert проверяет, что первичный ключ (int) равен нулю. Если это так, он вызывает «InsertOnSubmit» для данной таблицы в DataContext, а затем вызывает SubmitChanges.

Таким образом, переменные - это поле первичного ключа и тип. Кроме этого, они одинаковы. Можно ли сделать это более общим, чтобы я мог написать только одну функцию вставки, обновления и удаления?

Спасибо.

Редактировать : Когда я говорю о функциях, я также имею в виду методы. Разве они не имеют в виду одно и то же? Кроме того, я хочу три отдельные универсальные функции. Вставить, обновить и удалить.

1 Ответ

0 голосов
/ 12 декабря 2011

Я не уверен, что полностью это понял.Под функцией вы подразумеваете метод?Возможно, вы могли бы создать метод Persist (..), который определяет, является ли он вставкой или обновлением на основе значения ключа, но трудно понять, как или действительно значение отсутствия метода Delete (..).

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