Замок Active Record - отношения один ко многим - PullRequest
0 голосов
/ 02 ноября 2011

Я пытаюсь создать множество для отношения один ко многим в активной записи.

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

Я использую выборку из http://www.castleproject.org/activerecord/gettingstarted/relations.html

, с которой произошла ошибка:

ActiveRecord попытался вывести подробности об отношении User.Album, но не смог найти сопоставленное свойство BelongsTo в типе назначения

StrackTrace:

в Castle.ActiveRecord.Framework.Internal.SemanticVerifierVisitor.VisitHasMany (модель HasManyModel) в Castle.ActiveRecord.Framework.Internal.HasManyModel.Accept (посетитель IVisitor) в Castle.ActiveRecord..ActiveRecord.Framework.Internal.AbstractDepthFirstVisitor..Framework.Internal.ActiveRecordModel.Accept (посетитель IVisitor) в Castle.ActiveRecord.Framework.Internal.AbstractDepthFirstVisitor.VisitNode (доступный для посещения) в Castle.ActiveRecord.Framework., Источник IConfigurationSource, типы IEnumerable`1, Boolean ignoreProblematicTypes) в Castle.ActiveRecord.ActiveRecordStarter.Initialize (типы IConfigurationSource, Type []) в SAMPLE_1.Program.Main (String [] args) в E: \ C # PROJECTS \ STUDSTUDY.ORM \ Active Record

SAMPLE_1.PhotoAlbum

Я думаю, что проблема здесь:

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

Если я пропустил это свойство/ отношения это работает хорошо.

1 Ответ

0 голосов
/ 09 ноября 2011

Если в одном профиле много фотоальбомов, в классе PhotoAlbum отсутствует свойство:

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