Я использую Entity Framework и C # POCO объекты. У меня есть некоторые объекты, которые отличаются только поведением; строки данных, к которым они относятся в БД, идентичны. В базе данных есть строка, определяющая класс, содержащий поведение.
Мне бы очень хотелось использовать абстрактный класс для реализации общего поведения, а затем создать экземпляр класса из Entity Framework на основе этой строки в базе данных. Этот пример не тот, над которым я работаю, но я думаю, что он аналогичен. Если это неправильный способ обработки документа, это потому, что это всего лишь аналогия, и я ничего не знаю об управлении документами:)
Например, учитывая эти две строки из таблицы «Документ» (со строкой заголовка):
DocumentId Description DocumentType
314 A word processing document WordProcessingDocument
315 A spreadsheet SpreadsheetDocument
В идеале я должен был бы получить один Document.WordProcessingDocument и один Document.SpreadsheetDocument, который будет иметь общее поведение, описанное в абстрактном классе Document. Entity Framework по-прежнему будет управлять этими объектами и их отношениями с другими объектами.
Можно ли это сделать? Или Entity Framework может создавать только один класс на таблицу? Не имеет смысла создавать новую таблицу для каждого подтипа, поскольку в этих таблицах не будет данных. Эти подклассы отличаются только поведением, а не данными.