Пример #1
0
        public virtual bool Remove(TTargetEntity item)
        {
            // parameter bindings
            IDictionary <string, object> parameters = new Dictionary <string, object>();

            parameters.Add("@JoinColumn", RowDataGatewayRegistry <TMappedBy> .GetRowDataGateway().PrimaryKey.Get(mappedBy));
            parameters.Add("@InverseJoinColumn", RowDataGatewayRegistry <TTargetEntity> .GetRowDataGateway().PrimaryKey.Get(item));
            // run command
            NonQueryResult result = SimpleQuery.ExecuteNonQuery(RowDataGatewayRegistry <TMappedBy> .GetRowDataGateway().DatabaseName, CommandType.Text, removeSql, removeParameterTemplates, parameters, false);
            // remove from collection
            bool removedItem = values.Remove(item);

            if (result.RowsAffected == 1)
            {
                if (removedItem)
                {
                    return(true);
                }
                throw new DataException(SR.GetString(SR.ManyToMany_Db_Remove_NonMember));
            }
            else if (result.RowsAffected == 0)
            {
                if (!removedItem)
                {
                    return(false);
                }
                throw new DataException(SR.GetString(SR.ManyToMany_Collection_Remove_NonMember));
            }
            else
            {
                throw new DataException(SR.GetString(SR.ManyToMany_Bad_Delete_Count, new object[] { result.RowsAffected, removedItem ? 1 : 0 }));
            }
        }
Пример #2
0
        protected virtual string JoinStatement()
        {
            ColumnAttribute joinColumn = RowDataGatewayRegistry <TMappedBy> .GetRowDataGateway().PrimaryKeyColumn;

            ColumnAttribute inverseJoinColumn = RowDataGatewayRegistry <TTargetEntity> .GetRowDataGateway().PrimaryKeyColumn;

            return(GetRowDataGateway().JoinStatement(tableName, inverseJoinColumn.Name, joinColumn.Name));
        }
Пример #3
0
        public virtual void Clear()
        {
            // parameter bindings
            IDictionary <string, object> parameters = new Dictionary <string, object>();

            parameters.Add("@JoinColumn", RowDataGatewayRegistry <TMappedBy> .GetRowDataGateway().PrimaryKey.Get(mappedBy));
            // run command
            SimpleQuery.ExecuteNonQuery(RowDataGatewayRegistry <TMappedBy> .GetRowDataGateway().DatabaseName, CommandType.Text, clearSql, clearParameterTemplates, parameters, false);
            // update local collection
            values.Clear();
        }
Пример #4
0
        private void GenerateClearSql(out string text, out IList <IDataParameterTemplate> parameters)
        {
            ColumnAttribute joinColumn = RowDataGatewayRegistry <TMappedBy> .GetRowDataGateway().PrimaryKeyColumn;

            // command text
            StringBuilder sb = new StringBuilder();

            sb.Append("DELETE FROM ").Append(tableName).Append(" WHERE ");
            sb.Append(joinColumn.Name).Append(" = @JoinColumn");
            text = sb.ToString();
            // parameter definitions
            parameters = new List <IDataParameterTemplate>();
            parameters.Add(new DataParameterTemplate("@JoinColumn", joinColumn.DbType, joinColumn.Nullable));
        }
Пример #5
0
        public void SetValue(TTargetEntity value)
        {
            if (value == null)
            {
                RowDataGatewayRegistry <TMappedBy> .GetRowDataGateway().Member(memberName).Set(mappedBy, null);
            }
            else
            {
                TKeyType fk = (TKeyType)GetRowDataGateway().PrimaryKey.Get(value);

                RowDataGatewayRegistry <TMappedBy> .GetRowDataGateway().Member(memberName).Set(mappedBy, fk);
            }

            targetEntity = value;
        }
Пример #6
0
        public virtual void Add(TTargetEntity item)
        {
            if (Contains(item))
            {
                return;
            }
            // parameter bindings
            IDictionary <string, object> parameters = new Dictionary <string, object>();

            parameters.Add("@JoinColumn", RowDataGatewayRegistry <TMappedBy> .GetRowDataGateway().PrimaryKey.Get(mappedBy));
            parameters.Add("@InverseJoinColumn", RowDataGatewayRegistry <TTargetEntity> .GetRowDataGateway().PrimaryKey.Get(item));
            // run command
            SimpleQuery.ExecuteNonQuery(RowDataGatewayRegistry <TMappedBy> .GetRowDataGateway().DatabaseName, CommandType.Text, addSql, addParameterTemplates, parameters, false);
            // add to collection
            values.Add(item);
        }
Пример #7
0
        private void GenerateAddSql(out string text, out IList <IDataParameterTemplate> parameters)
        {
            ColumnAttribute joinColumn = RowDataGatewayRegistry <TMappedBy> .GetRowDataGateway().PrimaryKeyColumn;

            ColumnAttribute inverseJoinColumn = RowDataGatewayRegistry <TTargetEntity> .GetRowDataGateway().PrimaryKeyColumn;

            // command text
            StringBuilder sb = new StringBuilder();

            sb.Append("INSERT INTO ").Append(tableName);
            sb.Append("(").Append(joinColumn.Name).Append(",").Append(inverseJoinColumn.Name).Append(")");
            sb.Append(" VALUES (").Append("@JoinColumn").Append(",").Append("@InverseJoinColumn").Append(")");
            text = sb.ToString();
            // parameter definitions
            parameters = new List <IDataParameterTemplate>();
            parameters.Add(new DataParameterTemplate("@JoinColumn", joinColumn.DbType, joinColumn.Nullable));
            parameters.Add(new DataParameterTemplate("@InverseJoinColumn", inverseJoinColumn.DbType, inverseJoinColumn.Nullable));
        }
Пример #8
0
        public override bool Equals(object obj)
        {
            if (obj == null)
            {
                return(false);
            }
            if (this == obj)
            {
                return(true);
            }
            if (!GetType().Equals(obj.GetType()))
            {
                return(false);
            }
            RowDataGateway <T> gateway = RowDataGatewayRegistry <T> .GetRowDataGateway();

            object pk1 = gateway.PrimaryKey.Get(this);
            object pk2 = gateway.PrimaryKey.Get(obj);
            bool   equals;

            if (pk1 == null)
            {
                if (pk2 == null)
                {
                    equals = base.Equals(obj);
                }
                else
                {
                    equals = false;
                }
            }
            else
            {
                if (pk2 == null)
                {
                    equals = false;
                }
                else
                {
                    equals = pk1.Equals(pk2);
                }
            }
            return(equals);
        }
Пример #9
0
        private ICollection <TTargetEntity> Values()
        {
            if (select)
            {
                object value = RowDataGatewayRegistry <TMappedBy> .GetRowDataGateway().PrimaryKey.Get(mappedBy);

                if (value == null)
                {
                    values = new List <TTargetEntity>();
                }
                else
                {
                    DbType type = GetRowDataGateway().PrimaryKeyColumn.DbType;

                    values = Find(JoinStatement(), CreateBindingList("Value", value, type, false));
                }

                select = false;
            }

            return(values);
        }
Пример #10
0
 protected RowDataGateway <T> GetRowDataGateway()
 {
     return(RowDataGatewayRegistry <T> .GetRowDataGateway());
 }
Пример #11
0
 public override string ToString()
 {
     return(RowDataGatewayRegistry <T> .GetRowDataGateway().ToString(This));
 }
Пример #12
0
 public override int GetHashCode()
 {
     return(RowDataGatewayRegistry <T> .GetRowDataGateway().HashCode(This));
 }
Пример #13
0
 public void Save()
 {
     RowDataGatewayRegistry <T> .GetRowDataGateway().Save(This);
 }