/// <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) )); }
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 ))); }
/// <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()); }
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; }