C# Создание функции с использованием отражения - PullRequest
0 голосов
/ 14 апреля 2020

У меня есть обобщенный метод c, который удаляет многие объекты с помощью SQL и помечает объекты как отдельные (EF). В настоящее время я передаю список объектов и функцию для извлечения первичного ключа объекта, который должен быть включен в SqlParameters. Когда я пытался извлечь свойства (PK) из каждого объекта с отражением, а не передавать в функцию, это оказало влияние на производительность для большого числа объектов.

Можно ли использовать отражение на первом объекте для создать эту функцию, а затем использовать эту функцию для извлечения всех свойств (PK) из элемента в списке без отражения?

Это пример того, как функция вызывается в данный момент.

Db.DeleteMany(someObjects, obj => obj.PrimaryKey);

(я пытаюсь создать второй параметр, используя отражение, без результирующей функции, также использующей отражение для извлечения значения)

Хотя я не могу поделиться фактической реализацией (я написал ее, но мне не принадлежит это) вот подпись метода deleteMany.

public static void DeleteMany<T1, T2>(this DbContext context, List<T1> items, Func<T1, T2> getKey) where T1 : class

Вся остальная информация, такая как tableName и tablePkName, выбирается с использованием отражения в DbContext на основе типа T1. T2 - это тип PK в самом объекте.

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