Хы, интересно.
Мы не знаем, в какой таблице ищем. А что мы ищем - знаем?
Т.е. у нас на входе:
1) Common
2) Некие критерии
Вопрос - что предасталяют собой критерии? Если критерии - это значения каких-то полей, то что даст набор ключевых полей. К примеру,
критерий поиска = ["ItemId1", "ItemName111"] - 2 поля
ключевые поля таблицы = [ItemId] - 1 поле
И что с этим делать? В любом случае искать придется по связке ItemId+ItemNam, и не важно - ключевой это набор или нет.