2

Albums と Photos の 2 つのエンティティがあり、その間に多対多の関係があります。そのすべてが正常に動作しています。私が望むのは、関係属性、つまり、album_id と photo_id 以外の追加の属性をマッピングに追加することです。たとえば、写真が追加された日時や、写真がそのアルバムに表示されるかどうかを示す属性です。

public class Photo
{   public virtual int Id { get; set; }
    public virtual string Title { get; set; }
    public virtual ICollection<Album> Albums { get; set; }
}

public class Album
{
public virtual int Id {get;set;}
    public virtual string Title {get;set;}
    public virtual ICollection<Photo> Photos { get; set; }
}

現在のマッピングは次のようになります。

public class PhotosMap : ClassMap<Photo>
{
   public PhotosMap()
      {
         Id(x => x.Id);
         Map(x => x.Title); 
         HasManyToMany<Album>(x => x.Albums).Not.LazyLoad().Table("album_photos");               
         Table("photos");
      }
}

public class AlbumsMap : ClassMap<Album>
{
   public AlbumsMap()
     {
         Id(x => x.Id);
         Map(x => x.Title);                
         HasManyToMany<Photo>(x => x.Photos).Inverse().Not.LazyLoad().Table("album_photos");
         Table("album");
     }
 }
4

2 に答える 2

2

できません。ここで、そのマッピング テーブルを明示的にモデル化し、マップする必要があります。

于 2013-09-19T14:42:00.853 に答える
0

私はこのようなものを持っています:

HasManyToMany<EnterpriseRelation>(x => x.SharedIn)
    .Table("SharedDocs")
    .ChildWhere("State=" + StateId.Accepted) // this filter out all relation that aren't accepted
    .ParentKeyColumn("DocId")
    .ChildKeyColumn("RelationId");

StateId.Acceptedコスタントなので問題ありませんが、これ以上のことはできないと思います。

于 2013-09-19T14:52:58.140 に答える