public void ForeignKeyFilter()
        {
            var  baseGuid = Guid.NewGuid();
            var  fooGuid  = Guid.NewGuid();
            long fooID;

            using (IUnitOfWork unitOfWork = this.unitOfWorkFactory.Create())
            {
                var foo = new FooPartitioned {
                    Guid = fooGuid
                };
                var baseClass = new BaseClassPartitioned {
                    Foo = foo, Guid = baseGuid
                };

                unitOfWork.Add(baseClass);

                unitOfWork.Save();

                fooID = foo.ID;
            }

            using (IUnitOfWork unitOfWork = this.unitOfWorkFactory.Create())
            {
                var baseClassByID   = unitOfWork.Query <BaseClassPartitioned>().SingleOrDefault(c => c.Foo.ID == fooID);
                var baseClassByGuid = unitOfWork.Query <BaseClassPartitioned>().SingleOrDefault(c => c.Foo.Guid == fooGuid);

                Assert.IsNotNull(baseClassByID);
                Assert.IsNotNull(baseClassByGuid);

                Assert.AreEqual(baseGuid, baseClassByID.Guid);
                Assert.AreEqual(baseGuid, baseClassByGuid.Guid);
            }
        }
 private static bool Compare(BaseClassPartitioned expected, BaseClassPartitioned actual)
 {
     return(expected.ID == actual.ID && expected.Guid == actual.Guid && expected.PartitionGuid == actual.PartitionGuid);
 }