NHibernate尝试为视图创建索引

时间:2014-01-21 09:00:44

标签: c# .net nhibernate nhibernate-mapping

我正在编写一个使用NHibernate访问数据库的C#应用​​程序。我的一个数据源是名为content_profile视图(不是表格)。我使用NHibernate Attributes创建了以下示例类:

[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 个答案:

答案 0 :(得分:1)

您可以通过添加SchemaAction.None指定不应对某个类地图的架构执行任何操作,从不使用属性,因为它缺少功能但应该具有[Class(SchemaAction="None")] < / p>