public async Task BugAsync() { ISession session = OpenSession(); ITransaction transaction = session.BeginTransaction(); Activity activity = new Activity(); await(session.SaveAsync(activity)); ActivitySet activitySet = new ActivitySet(); activitySet.Activities.Add(activity); await(session.SaveAsync(activitySet)); await(transaction.CommitAsync()); session.Close(); session = OpenSession(); transaction = session.BeginTransaction(); // This works: //IList<ActivitySet> list = session.CreateQuery("from ActivitySet a where a.Id = 1").List<ActivitySet>(); //Console.WriteLine("Got it? {0}", list.Count == 1); //session.Flush(); // This does not ActivitySet loadedActivitySet = (ActivitySet)await(session .CreateCriteria(typeof(ActivitySet)) .Add(Expression.Eq("Id", activitySet.Id)) .UniqueResultAsync()); await(session.FlushAsync()); foreach (object o in loadedActivitySet.Activities) { await(session.DeleteAsync(o)); } await(session.DeleteAsync(loadedActivitySet)); await(transaction.CommitAsync()); session.Close(); }
public void Bug() { ISession session = OpenSession(); ITransaction transaction = session.BeginTransaction(); Activity activity = new Activity(); session.Save(activity); ActivitySet activitySet = new ActivitySet(); activitySet.Activities.Add(activity); session.Save(activitySet); transaction.Commit(); session.Close(); session = OpenSession(); transaction = session.BeginTransaction(); // This works: //IList<ActivitySet> list = session.CreateQuery("from ActivitySet a where a.Id = 1").List<ActivitySet>(); //Console.WriteLine("Got it? {0}", list.Count == 1); //session.Flush(); // This does not ActivitySet loadedActivitySet = (ActivitySet) session .CreateCriteria(typeof(ActivitySet)) .Add(Expression.Eq("Id", activitySet.Id)) .UniqueResult(); session.Flush(); foreach (object o in loadedActivitySet.Activities) { session.Delete(o); } session.Delete(loadedActivitySet); transaction.Commit(); session.Close(); }