я периодически получаю следующее исключение:
На коллекцию с cascade = "all-delete-orphan" больше не ссылался экземпляр владельца объекта: Domain.Foo.Bars
Большинство результатов в Google для этого исключения указывают на то, что проблема возникает, когда вы разыменовываете коллекцию, вместо вызова Clear () для существующей коллекции и добавления новых сущностей. Однако это не моя проблема.
Вот весь соответствующий код:
public class Foo
{
public int Id { get; set; }
private Iesi.Collections.Generic.ISet<Bar> _bars = new HashedSet<Bar>();
public virtual ICollection<Bar> Bars
{
get { return _bars; }
}
}
public class Bar
{
public int Id { get; set; }
public DateTime Expiry { get; set; }
}
public class FooDbMap : ClassMap<Foo>
{
public FooDbMap
{
Id(x => x.Id);
HasMany(x => x.Bars)
.Access.CamelCaseField(Prefix.Underscore)
.KeyColumn("FooId")
.LazyLoad()
.Where("Expiry > (select getdate())")
.AsSet()
.Cascade.AllDeleteOrphan();
}
}
Вы увидите, что с помощью этого кода невозможно разыменовать коллекцию Bars , т. Е. Сделать это:
foo.Bars = new List<Boo>();
Что может быть причиной ошибки?