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; }