Я пытаюсь получить Fluent Nhibernate для представлений Automap, доступных только для чтения, для которых не указан первичный или составной ключ.Кажется, что это возможно, так как документ API для ClassMap предоставляет конструктор по умолчанию для Id ().
http://fluentnhibernate.org/api/FluentNHibernate.Mapping/ClassMap%601.htm
он говорит
IdentityPart Id () Создайте Id, у которого нет соответствующего свойства в объекте домена или столбца в базе данных.Это главным образом для использования с доступом только для чтения и / или представлениями.По умолчанию используется тождество int с генератором «increment».
Я попытался переопределить сопоставление для сущности, которая соответствует моему представлению, и удалил соглашение о первичном ключе, которое задает имя поля Id,Он добавляет столбец id
к запросам в представлении, которые не выполняются из-за отсутствия такого столбца.
Я пытаюсь избавиться от поддельных первичных ключей в моих представлениях, так как считаю, что должен быть лучший способсделайте это.
Вот фрагмент переопределения, который я использую
public class PersonMap: IAutoMappingOverride<Person>
{
public void Override(AutoMapping<Person> mapping)
{
mapping.Id();
}
}
Почему это не работает?