예제 #1
0
        public void PrimitiveKeyInfoIsEmpty()
        {
            var keyInfo = PrimitiveKeyInfo.Create((Member g) => g.GroupId);

            Assert.IsTrue(keyInfo.IsEmptyKey(null));
            Assert.IsFalse(keyInfo.IsEmptyKey(1));
        }
예제 #2
0
        public void PrimitiveKeyInfoComparer()
        {
            var keyInfo  = PrimitiveKeyInfo.Create((Member g) => g.GroupId);
            var comparer = keyInfo.KeyComparer;

            Assert.AreEqual(0, comparer.Compare(null, null));
            Assert.AreEqual(-1, comparer.Compare(null, 1));
            Assert.AreEqual(1, comparer.Compare(1, null));

            Assert.AreEqual(0, comparer.Compare(1, 1));
            Assert.AreEqual(-1, comparer.Compare(0, 1));
            Assert.AreEqual(1, comparer.Compare(1, 0));
        }
예제 #3
0
        public bool TryCreateKeyInfo <TEntity, TKey>(
            Expression <Func <TEntity, TKey> > keySelector,
            out IKeyInfo <TEntity, TKey> result) where TEntity : class
        {
            if (!ValidateType(typeof(TKey)))
            {
                result = null;
                return(false);
            }

            IKeyInfoHelper helper = PrimitiveKeyInfo <TEntity, TKey> .KeyInfoHelper;

            MemberInfo[] members;

            if (!helper.TryParseKeySelectorExpression(keySelector.Body, true, out members))
            {
                result = null;
                return(false);
            }

            result = new PrimitiveKeyInfo <TEntity, TKey>(members[0]);
            return(true);
        }
예제 #4
0
        public void PrimitiveKeyInfoCreation()
        {
            var keyInfo = PrimitiveKeyInfo.Create((Group g) => g.Id);

            Assert.AreEqual(1, keyInfo.EntityKeyMembers.Length);
        }