I try create many to relationship one to many in Active record.
[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; }
}
I am using sample from http://www.castleproject.org/activerecord/gettingstarted/relations.html
it finished with this error:
ActiveRecord tried to infer details about the relation User.Album but it could not find a 'BelongsTo' mapped property in the target type
StrackTrace:
at Castle.ActiveRecord.Framework.Internal.SemanticVerifierVisitor.VisitHasMany(HasManyModel model) at Castle.ActiveRecord.Framework.Internal.HasManyModel.Accept(IVisitor visitor) at Castle.ActiveRecord.Framework.Internal.AbstractDepthFirstVisitor.VisitNode(IVisitable visitable) at Castle.ActiveRecord.Framework.Internal.AbstractDepthFirstVisitor.VisitNodes(IEnumerable nodes) at Castle.ActiveRecord.Framework.Internal.AbstractDepthFirstVisitor.VisitModel(ActiveRecordModel model) at Castle.ActiveRecord.Framework.Internal.SemanticVerifierVisitor.VisitModel(ActiveRecordModel model) at Castle.ActiveRecord.Framework.Internal.ActiveRecordModel.Accept(IVisitor visitor) at Castle.ActiveRecord.Framework.Internal.AbstractDepthFirstVisitor.VisitNode(IVisitable visitable) at Castle.ActiveRecord.Framework.Internal.AbstractDepthFirstVisitor.VisitNodes(IEnumerable nodes) at Castle.ActiveRecord.ActiveRecordStarter.RegisterTypes(ISessionFactoryHolder holder, IConfigurationSource source, IEnumerable`1 types, Boolean ignoreProblematicTypes) at Castle.ActiveRecord.ActiveRecordStarter.Initialize(IConfigurationSource source, Type[] types) at SAMPLE_1.Program.Main(String[] args) in E:\C# PROJECTS\STUDY\STUDY.ORM\Active Record
SAMPLE_1.PhotoAlbum
I think problem is here:
[HasMany(Inverse = false,Cascade = ManyRelationCascadeEnum.Delete)]
public IList<PhotoAlbum> Album
{
get { return _albums; }
set { _albums = value; }
}
If I omitted this property / relationship it works good.