2014-01-21 5 views
2

Я пишу приложение C#, которое использует NHibernate для доступа к базе данных. Одним из моих источников данных является вид (а не таблица) с именем content_profile. Я создал следующий класс образца с помощью NHibernate Атрибуты:NHibernate пытается создать индексы для представления

[Class(Table = "content_profile")] 
public class ContentProfile 
{ 
    [Id(0, TypeType = typeof(int), Name = @"Id"), Generator(2, Class = @"identity"), Column(1, Name = @"Id")] 
    public virtual int Id { get; set; } 

    [NotEmpty] 
    [MinLength(1)] 
    public virtual string Name { get; set; } 

    [Property] 
    public virtual DateTime? CreationDate { get; set; } 

    [ManyToOne(Lazy = Laziness.False, Column = @"author_id")] 
    public virtual User Owner { get; set; } 
} 

При попытке обновить схему, я получаю следующее сообщение об ошибке:

NHibernate.Tool.hbm2ddl.SchemaUpdate [(null)] - Unsuccessful: alter table public.content_profile add constraint FK280FFEFD6A68A1F9 foreign key (author_id) references public.users 

Npgsql.NpgsqlException: 
"content_profile" - is not a table 

Как сказать NHibernate, что это действительно вид, а не таблица и индексы не должны создаваться при обновлении схемы?

ответ

1

Вы можете указать, что не следует делать какие-либо действия на схеме определенного класса карты, добавив SchemaAction.None, никогда не использовал атрибуты, потому что ему не хватает возможностей, но это должно быть что-то вроде [Class(SchemaAction="None")]

Смежные вопросы