Exemple #1
0
        /// <summary>
        /// Queries a subset of all entities of type T
        /// </summary>
        /// <param name="where">Query filter</param>
        /// <returns></returns>
        public IEnumerable <T> Where(WhereSqlFragment where)
        {
            var query = new QueryBuilder(_ctx)
                        .Select <T>()
                        .Where(where)
                        .Build();

            return(_ctx.Connection.Select(query));
        }
        public DeleteQuery(DbContext ctx, Entity entity, T obj)
        {
            _ctx   = ctx;
            Entity = entity;
            var pk = Entity.PrimaryKeyAttribute.InvokeGetter(obj);

            _where = new WhereSqlFragment(
                BinaryExpression.Eq(
                    new Accessor {
                TableName = Entity.TableName, PropertyName = Entity.PrimaryKeyAttribute.DataBaseColumn
            },
                    Value.FromAttr(pk, Entity.PrimaryKeyAttribute)
                    ));
        }
Exemple #3
0
 public UpdateStatement(DbContext context, Entity entity, TEntity obj, IEnumerable <IValueChange> changes)
 {
     _object              = obj;
     _context             = context;
     Entity               = entity;
     _changes             = changes;
     _returningAttributes = Entity.Attributes.Values.Where(attr => !attr.IsEntityType);
     _whereClause         = new WhereSqlFragment(BinaryExpression.Eq(
                                                     new Accessor {
         TableName = Entity.TableName, PropertyName = Entity.PrimaryKeyAttribute.DataBaseColumn
     },
                                                     Value.FromAttr(
                                                         Entity.PrimaryKeyAttribute.InvokeGetter(_object),
                                                         Entity.PrimaryKeyAttribute
                                                         )));
 }
Exemple #4
0
        /// <summary>
        /// Finds a specific entity with the given primary key, returns null is the given key was not found
        /// </summary>
        /// <param name="primaryKey"></param>
        /// <returns></returns>
        public T Find(object primaryKey)
        {
            var entity = _ctx.Schema.EntityTypeMap[typeof(T)];
            var pkAttr = entity.PrimaryKeyAttribute;

            var filter = new WhereSqlFragment(
                BinaryExpression.Eq(
                    new Accessor
            {
                PropertyName = pkAttr.DataBaseColumn,
                TableName    = entity.TableName
            }, Value.FromAttr(primaryKey, pkAttr)));

            var query = new QueryBuilder(_ctx)
                        .Select <T>()
                        .Where(filter)
                        .Build();

            return(_ctx.Connection.Select(query).FirstOrDefault());
        }
Exemple #5
0
 public SelectFromWhereQueryBuilder <TEntity> Where(WhereSqlFragment filter)
 {
     _wheres.Add(filter);
     return(this);
 }
 public DeleteQuery(DbContext ctx, Entity e, WhereSqlFragment whereSqlFragment)
 {
     _ctx   = ctx;
     Entity = e;
     _where = whereSqlFragment;
 }