Общая форма для работы с разными таблицами

В продолжении темы интерфейсов (

Интерфейсы - ошибка: неявное преобразование

).

Задача примерно следующая: сделать форму для добавления/удаления/редактирования данных с разных таблиц, имеющих по 2 поля, имеющие разные имена, но одинаковых по сущности - ID и Name.

У меня есть 3 класса для хранения данных, у которых 2 свойства ID и Name (разные потому что в каждой таблице поля именуются по-разному), есть 3 разных класса для доступа к данным (разные по причинам условий выборки), но с одинаковыми методами GetAll(), Insert(), Update() и т.п., каждый из классов доступа работает

только с одним конкретным классом хранения данных

. И 1 форма, которая позволяет работать со всеми таблицами.

У меня сейчас всё реализовано с помощью интерфейсов и обобщений, класс формы выглядит примерно так:

C#Выделить код

| | |
| --- | --- |
| 1 | public partial class XBrowseSimpleEdit<TAcc, TEntity> : XtraForm where TAcc : ISimpleAccessor, new() where TEntity : ISimpleEntity |

(Конкретно мне не нравится, что надо указывать тип класса-сущности, хотя Accessor работает с 1 типом сущности, но от этого я никак уйти не могу).

Вопрос в следующем: может быть есть способ более правильный/простой? Как лучше всё это организовать?