У меня есть абстрактный базовый класс для свойств аудита. Для краткости скажем, что у него есть одно свойство
Public MustInherit Class AbstractAuditableEntity
...
Public Property CreatedTime() As DateTimeOffset
...
End Class
И затем мои проверяемые объекты домена наследуются от этого класса
Public Class Source
Inherits AbstractAuditableEntity
...
Public Property SourceId() As String
...
End Class
У меня есть следующая таблица DDL, с которой я хочу сопоставить объект моего домена «Источник». По сути, отношения между каждым (конкретным) объектом домена и таблицей равны 1-1, причем каждая таблица имеет требуемый столбец аудита.
CREATE TABLE Source
(
SourceID VARCHAR(10) NOT NULL,
CreatedTime DATETIMEOFFSET(3) NOT NULL,
CONSTRAINT PK_Source PRIMARY KEY (SourceID))
GO
Используя внешний файл сопоставления, моя первая попытка сопоставить класс с таблицей была бы глупой:
<?xml version="1.0" encoding="utf-8"?>
<Database Name="" xmlns="http://schemas.microsoft.com/linqtosql/mapping/2007">
<Table Name="Source" Member="Sources">
<Type Name ="Source">
<Column Name="SourceID" Member="SourceID" IsPrimaryKey="true" CanBeNull="false"/>
<Column Name="CreatedTime" Member="CreatedTime" />
</Type>
</Table>
</Database>
Однако это приводит к следующему исключению:
Столбец или ассоциация «CreatedTime» в сопоставлении не имеет соответствующего члена типа «Источник». Сопоставление элементов с указанным выше корневым типом не поддерживается.
В контексте моего уровня сохраняемости я не пытаюсь представить иерархию наследования как таковую, но в контексте моего приложения я просто использую базовый класс для предоставления свойств, необходимых для всех моих объектов домена. Из-за того, что я много возился с моим файлом сопоставления (включая сопоставление столбцов аудита с базовым типом AbstractAuditableEntity) и читая все вокруг, я не могу достичь того, что я считаю довольно простой задачей ORM.
Любые мысли или предложения приветствуются! Спасибо