У меня есть «наследование таблиц» в моей БД (где ссылка на базу потомков с внешним ключом), и я использую Linq To Sql в качестве моего DAL:
[Table]
class Document {
[Column]public int ID { get; set; }
[Column]public int DocTypeID { get; set; }
[Association]public Application Application { get; set; }
}
[Table]
class Application {
[Column]public int ID { get; set; }
[Column]public string AppType { get; set; }
[Association]public Document Document {get;set}
}
Поскольку L2S не поддерживает наследование нескольких таблиц Application
не наследуется от Document
.Тем не менее, в моих классах сущностей я хочу наследование:
class DocumentBase {
public int ID { get; set; }
public int DocTypeID { get; set; }
}
class MyApplication : DocumentBase {
public string AppType { get; set; }
}
Теперь я создаю сопоставления:
Mapper.CreateMap<Document, DocumentBase>();
Mapper.CreateMap<Application, MyApplication>();
Но AutoMapper жалуется на базовые свойства в MyApplication
, которые не сопоставлены.Я не хочу дублировать базовые свойства на карте MyApplication
(слишком много потомков от DocumentBase
).Я нашел несколько постов, предлагающих пользовательский ITypeConverter
, но не понимаю, как применить его к моему сценарию.Что мне делать?