Ошибка в том, что вы не применили атрибут [Table] (обычно он бы использовал тип класса, в вашем случае тип интерфейса), но я не вижу его работоспособным, даже если вы это сделали. Вот как выполняется сопоставление - когда вы вызываете GetTable, он ищет атрибут Table, чтобы узнать, откуда вставить / запросить данные.
Тем не менее, я уверен, что вы не можете сделать это с помощью интерфейса. Тип в GetTable должен быть конкретным, потому что он использует общий аргумент, переданный (или выведенный) в GetTable, чтобы знать, какой объект создать для запроса. Хотя технически он может работать для вставок, один и тот же GetTable используется как для вставок, так и для запросов, но он наверняка не будет работать. По той же причине XmlSerializer и DataContractSerializer не работают с интерфейсами.
Вам всегда будет нужен конкретный тип, но ваши типы сущностей все еще могут реализовывать интерфейсы. Я предполагаю, что вы пытаетесь перенести их куда-нибудь (возможно, на уровень обслуживания), и вам, вероятно, придется немного обдумать это.