У меня есть соглашение для моих идентификаторов, которое автоматически сопоставляет свойства с именем Id
в качестве идентификатора.Поскольку требования уточняются, мне нужно настроить модель предметной области, поэтому, естественно, я подключился к сети и обнаружил, что мне нужно создать класс, который наследует от IAutoMappingOverride<T>
.
Мое соглашение:
public class PrimaryKeyConvention : IIdConvention, IIdConventionAcceptance
{
public void Apply(IIdentityInstance instance)
{
instance.Column("Id");
instance.GeneratedBy.SeqHiLo(instance.Name, "10");
}
public void Accept(IAcceptanceCriteria<IIdentityInspector> criteria)
{
criteria.Expect(x => x.Generator, Is.Not.Set);
}
}
Мое переопределение:
public class LocateMappingOverride : IAutoMappingOverride<Locate>
{
public void Override(AutoMapping<Locate> mapping)
{
mapping.Map(x => x.SendTo).Not.Nullable();
}
}
Соглашение работает должным образом, если я удаляю свое переопределение.
Исключение, которое я получаю: The entity 'LocateMappingOverride' doesn't have an Id mapped. Use the Id method to map your identity property. For example: Id(x => x.Id).
.
Возможно ли этоиспользовать соглашения в сочетании с переопределениями сопоставления?