Nhibernate Castle活动记录-一对多关系

Nhibernate Castle活动记录-一对多关系,nhibernate,castle-activerecord,relationship,Nhibernate,Castle Activerecord,Relationship,我尝试在活动记录中创建多对多关系 [ActiveRecord("Users")] public class User : ActiveRecordBase<User> { private IList<PhotoAlbum> _albums = new List<PhotoAlbum>(); [PrimaryKey] public virtual int UserId { get; set; } [BelongsTo("Pro

我尝试在活动记录中创建多对多关系

[ActiveRecord("Users")]
public class User : ActiveRecordBase<User>
{
    private IList<PhotoAlbum> _albums = new List<PhotoAlbum>();

    [PrimaryKey]
    public virtual int UserId { get; set; }

    [BelongsTo("ProfilId")]
    public virtual Profil Profil { get; set; }

    [HasMany(Inverse = false,Cascade = ManyRelationCascadeEnum.Delete)]
    public IList<PhotoAlbum> Album
    {
        get { return _albums; }
        set { _albums = value; }
    }

    [Property]
    public virtual string Nick { get; set; }

}

[ActiveRecord("Profiles")]
public class Profil : ActiveRecordBase<Profil>
{
    [PrimaryKey]
    public int ProfilId { get; set; }

    [Property]
    public int Age { get; set; }
    [Property]
    public int Sex { get; set; }
    [Property]
    public string Region { get; set; }
    [Property]
    public string Town { get; set; }
    [Property]
    public bool WithPhoto { get; set; }
    [Property]
    public bool HasPhotoAlbum { get; set; }
}

[ActiveRecord("PhotoAlbums")]
public class PhotoAlbum : ActiveRecordBase<PhotoAlbum>
{
    [PrimaryKey]
    public int PhotoAlbumId { get; set; }

    [Property]
    public string Name { get; set; }
    [Property]
    public int NumberOfPhoto { get; set; }
}
[ActiveRecord(“用户”)]
公共类用户:ActiveRecordBase
{
私有IList_albums=新列表();
[主密钥]
公共虚拟int用户标识{get;set;}
[属于(“ProfilId”)]
公共虚拟Profil Profil{get;set;}
[HasMany(Inverse=false,Cascade=ManyRelationCascadeEnum.Delete)]
公共图书馆
{
获取{return\u相册;}
设置{u albums=value;}
}
[物业]
公共虚拟字符串Nick{get;set;}
}
[ActiveRecord(“配置文件”)]
公共类profile:ActiveRecordBase
{
[主密钥]
公共int ProfilId{get;set;}
[物业]
公共整数{get;set;}
[物业]
公共int Sex{get;set;}
[物业]
公共字符串区域{get;set;}
[物业]
公共字符串{get;set;}
[物业]
带有照片{get;set;}的公共bool
[物业]
公共bool HasPhotoAlbum{get;set;}
}
[ActiveRecord(“相册”)]
公共类相册:ActiveRecordBase
{
[主密钥]
公共int PhotoAlbumId{get;set;}
[物业]
公共字符串名称{get;set;}
[物业]
public int NumberOfPhoto{get;set;}
}
我使用的样本来自

它以以下错误结束:

ActiveRecord试图推断有关用户关系的详细信息。但是 在目标类型中找不到“BelongsTo”映射属性

StrackTrace:

在 Castle.ActiveRecord.Framework.Internal.SemanticVerifierVisitor.VisitasMany(HasManyModel 模型)在 Castle.ActiveRecord.Framework.Internal.HasManyModel.Accept(IVisitor 访客)在 Castle.ActiveRecord.Framework.Internal.AbstractDepthFirstVisitor.VisitNode(IVisitable 可访问)在 Castle.ActiveRecord.Framework.Internal.AbstractDepthFirstVisitor.VisitNodes(IEnumerable 节点)在 Castle.ActiveRecord.Framework.Internal.AbstractDepthFirstVisitor.VisitModel(ActiveRecordModel 模型)在 Castle.ActiveRecord.Framework.Internal.SemanticVerifierVisitor.VisitModel(ActiveRecordModel 模型)在 Castle.ActiveRecord.Framework.Internal.ActiveRecordModel.Accept(IVisitor 访客)在 Castle.ActiveRecord.Framework.Internal.AbstractDepthFirstVisitor.VisitNode(IVisitable 可访问)在 Castle.ActiveRecord.Framework.Internal.AbstractDepthFirstVisitor.VisitNodes(IEnumerable 节点)在 Castle.ActiveRecord.ActiveRecordStarter.RegisterTypes(ISessionFactoryHolder holder,IConfigurationSource,IEnumerable`1类型,布尔型 忽略问题类型)在 Castle.ActiveRecord.ActiveRecordStarter.Initialize(IConfigurationSource 中的SAMPLE_1.Program.Main(字符串[]args)处的source,Type[]types) E:\C#PROJECTS\STUDY\STUDY.ORM\Active Record

样本1.相册

我认为问题在于:

    [HasMany(Inverse = false,Cascade = ManyRelationCascadeEnum.Delete)]
    public IList<PhotoAlbum> Album
    {
        get { return _albums; }
        set { _albums = value; }
    }
[HasMany(Inverse=false,Cascade=ManyRelationCascadeEnum.Delete)]
公共图书馆
{
获取{return\u相册;}
设置{u albums=value;}
}

如果我省略了此属性/关系,则效果很好。

假设一个配置文件有多个相册,则您的
PhotoAlbum
类缺少一个属性:

[BelongsTo("ProfileId")]
public Profile Profile { get; set; }