Esempio n. 1
0
        private void Initialize()
        {
            if (BsonClassMap.IsClassMapRegistered(typeof(TEntity)))
            {
                return;
            }

            var identityName = IdentitySelector.GetMemberInfo().Name;

            BsonClassMap.RegisterClassMap <TEntity>(cm =>
            {
                cm.AutoMap();
                if (cm.IdMemberMap == null)
                {
                    cm.SetIdMember(cm.GetMemberMap(identityName));

                    if (_keyTypeToBsonType.ContainsKey(typeof(TIdentity)) && (_keyTypeToBsonGenerator.ContainsKey(typeof(TIdentity))))
                    {
                        cm.IdMemberMap.SetRepresentation(_keyTypeToBsonType[typeof(TIdentity)]);
                        cm.IdMemberMap.SetIdGenerator(_keyTypeToBsonGenerator[typeof(TIdentity)]);
                    }
                }

                cm.Freeze();
            });
        }
Esempio n. 2
0
        private ISpecification <TEntity> ByIdentitySpecification(TIdentity identity)
        {
            var parameter = Expression.Parameter(typeof(TIdentity), "identity");
            var equalsBinaryExpression = Expression.Equal(IdentitySelector.Body, Expression.Constant(identity));
            var equalsExpression       = Expression.Lambda <Func <TIdentity, bool> >(equalsBinaryExpression, parameter);
            var predicateExpression    = IdentitySelector.Combine(equalsExpression);

            return(new ExpressionSpecification <TEntity>(predicateExpression));
        }