Пример #1
0
        public void TransientProxySave()
        {
            var id = 10;

            using (var session = OpenSession())
                using (var t = session.BeginTransaction())
                {
                    var e = new EntityAssigned()
                    {
                        Id = id, Name = "a"
                    };

                    session.Save(e);
                    session.Flush();
                    t.Commit();
                }

            using (var session = OpenSession())
                using (var t = session.BeginTransaction())
                {
                    var e = GetTransientProxy(session, id);
                    session.Save(e);
                    session.Flush();

                    t.Commit();
                }

            using (var session = OpenSession())
            {
                var entity = session.Get <EntityAssigned>(id);
                Assert.That(entity, Is.Not.Null, "Transient proxy wasn't saved");
            }
        }
Пример #2
0
        public async Task TransientProxySaveAsync()
        {
            var id = 10;

            using (var session = OpenSession())
                using (var t = session.BeginTransaction())
                {
                    var e = new EntityAssigned()
                    {
                        Id = id, Name = "a"
                    };

                    await(session.SaveAsync(e));
                    await(session.FlushAsync());
                    await(t.CommitAsync());
                }

            using (var session = OpenSession())
                using (var t = session.BeginTransaction())
                {
                    var e = await(GetTransientProxyAsync(session, id));
                    await(session.SaveAsync(e));
                    await(session.FlushAsync());

                    await(t.CommitAsync());
                }

            using (var session = OpenSession())
            {
                var entity = await(session.GetAsync <EntityAssigned>(id));
                Assert.That(entity, Is.Not.Null, "Transient proxy wasn't saved");
            }
        }
Пример #3
0
        public void TransientProxyBagCascadeSave()
        {
            var id = 10;

            using (var session = OpenSession())
                using (var t = session.BeginTransaction())
                {
                    var e = new EntityAssigned()
                    {
                        Id = id, Name = "a"
                    };
                    session.Save(e);
                    session.Flush();
                    t.Commit();
                }

            using (var session = OpenSession())
                using (var t = session.BeginTransaction())
                {
                    var child  = GetTransientProxy(session, id);
                    var parent = new EntityWithAssignedBag()
                    {
                        Id = 1, Name = "p", Children =
                        {
                            child
                        }
                    };
                    child.Parent = parent;

                    session.Save(parent);
                    session.Flush();

                    t.Commit();
                }

            using (var session = OpenSession())
            {
                var entity = session.Get <EntityAssigned>(id);
                Assert.That(entity, Is.Not.Null, "Transient proxy wasn't saved");
            }
        }
Пример #4
0
        public async Task TransientProxyBagCascadeSaveAsync()
        {
            var id = 10;

            using (var session = OpenSession())
                using (var t = session.BeginTransaction())
                {
                    var e = new EntityAssigned()
                    {
                        Id = id, Name = "a"
                    };
                    await(session.SaveAsync(e));
                    await(session.FlushAsync());
                    await(t.CommitAsync());
                }

            using (var session = OpenSession())
                using (var t = session.BeginTransaction())
                {
                    var child  = await(GetTransientProxyAsync(session, id));
                    var parent = new EntityWithAssignedBag()
                    {
                        Id = 1, Name = "p", Children =
                        {
                            child
                        }
                    };
                    child.Parent = parent;

                    await(session.SaveAsync(parent));
                    await(session.FlushAsync());

                    await(t.CommitAsync());
                }

            using (var session = OpenSession())
            {
                var entity = await(session.GetAsync <EntityAssigned>(id));
                Assert.That(entity, Is.Not.Null, "Transient proxy wasn't saved");
            }
        }
Пример #5
0
        public void TransientProxyDetectionFromUserCode()
        {
            var id = 10;

            using (var session = OpenSession())
                using (var t = session.BeginTransaction())
                {
                    var e = new EntityAssigned()
                    {
                        Id = id, Name = "a"
                    };
                    session.Save(e);
                    session.Flush();
                    t.Commit();
                }

            using (var session = OpenSession())
                using (var t = session.BeginTransaction())
                {
                    var child = GetTransientProxy(session, id);
                    Assert.That(ForeignKeys.IsTransientSlow(typeof(EntityAssigned).FullName, child, session.GetSessionImplementation()), Is.True);
                    t.Commit();
                }
        }
Пример #6
0
        public async Task TransientProxyDetectionFromUserCodeAsync()
        {
            var id = 10;

            using (var session = OpenSession())
                using (var t = session.BeginTransaction())
                {
                    var e = new EntityAssigned()
                    {
                        Id = id, Name = "a"
                    };
                    await(session.SaveAsync(e));
                    await(session.FlushAsync());
                    await(t.CommitAsync());
                }

            using (var session = OpenSession())
                using (var t = session.BeginTransaction())
                {
                    var child = await(GetTransientProxyAsync(session, id));
                    Assert.That(await(ForeignKeys.IsTransientSlowAsync(typeof(EntityAssigned).FullName, child, session.GetSessionImplementation(), CancellationToken.None)), Is.True);
                    await(t.CommitAsync());
                }
        }