У меня есть 2 объекта:Fluent NHibernate IList <> HasManyToMany не работает
public class Authors
{
public virtual int Id { get; set; }
public virtual string FirstName { get; set; }
public virtual string LastName { get; set; }
public virtual IList<Tags> Tags { get; set; }
}
public class Tags
{
public virtual int Id { get; set; }
public virtual string TagMark { get; set; }
public virtual IList<Authors> Authors { get; set; }
}
и отображения для них
public class AuthorsMap : ClassMap<Authors>
{
public AuthorsMap()
{
Id(x => x.Id);
Map(x => x.FirstName)
.Length(100)
.Not.Nullable();
Map(x => x.LastName)
.Length(100)
.Not.Nullable();
HasManyToMany(x => x.Tags);
}
}
public class TagsMap : ClassMap<Tags>
{
public TagsMap()
{
Id(x => x.Id);
Map(x => x.TagMark)
.Length(100)
.Not.Nullable();
HasManyToMany(x => x.Authors)
.Cascade.All().Inverse();
}
}
Но когда я хочу, чтобы добавить новые теги к существующему автору, я не ничего не получаю. Даже ошибка не выбрасывается и, конечно, тег не добавляется в таблицу отношений с авторами.
, например:
using (var trans.....) {
author.Tags.Add(tagobject)
trans.Commit()
}
в то время как tagobject и автор получены ранее. Я также пытался добавить как session.SaveOrUpdate (автор), но не работает ... HEELP!
Да, автор, извините –
Просто к сведению. Я хотел дать вам намек, не используйте, возможно, много-ко-многим. Я бы предложил использовать объект сопряжения, как описано здесь, более подробно http://stackoverflow.com/a/16827671/1679310 –
@Radim: Почему бы не использовать многие-ко-многим? Он полностью управляется NH и очень удобен. –