我有实体Post
和Tag
,其中两者之间存在多对多的关系(例如,每个帖子可以有一个或多个标签,每个标签可以与任何关联的任何职位数量)。NHibernate多对多计数
我想实现的是让Tag
实体具有提供与该标记关联的帖子数量的字段。但是,我不知道如何得到这个没有得到整个Post
的集合(我想避免)。
我用流利的NHibernate和我的实体和映射这个样子目前:
实体/ Post.cs
public class Post : PersistentBase
{
public virtual string Title { get; set; }
/* snip */
private IList<Tag> tags = new List<Tag>();
public virtual IEnumerable<Tag> Tags {
get { return tags; }
}
public virtual void AddTag(Tag tag) {
this.tags.Add(tag);
}
}
映射/ PostMap.cs
public class PostMap : ClassMap<Post>
{
public PostMap()
{
Id(x => x.Id).GeneratedBy.HiLo("99");
Map(x => x.Title);
/* snip */
HasManyToMany(x => x.Tags);
}
}
实体/ Tag.cs
public class Tag : PersistentBase
{
public virtual string Name { get; set; }
public static Tag Create(string name) {
return new Tag { Name = name };
}
}
映射/ TagMap.cs
public class TagMap : ClassMap<Tag>
{
public TagMap()
{
Id(x => x.Id).GeneratedBy.HiLo("99");
Map(x => x.Name).Unique();
}
}
理想情况下想什么,我实现的是要能够加入到实体/ Tag.cs,类似如下:
public virtual int PostCount { get; set; }
然后使用该标签预先填充帖子的数量。
我该如何去做这件事? (这的确有可能吗?)
ü不需要的tagmap类 – 2010-05-28 11:30:38