Ejemplo n.º 1
0
		protected virtual void GetUpdateCollectionPropertyStatements(object obj, IPropertyMap propertyMap, ArrayList sqlAndParamsList, IList stillDirty)
		{
			IObjectManager om = m_SqlEngineManager.Context.ObjectManager;
			IList newList = (IList) om.GetPropertyValue(obj, propertyMap.Name);
			IList oldList = (IList) om.GetOriginalPropertyValue(obj, propertyMap.Name);
			SqlStatementAndDbParameters sqlAndParams;
			string sql;
			IList parameters;

			if (!(propertyMap.ReferenceType == ReferenceType.None))
			{
				foreach (object value in newList)
				{
					if (om.GetObjectStatus(value) == ObjectStatus.UpForCreation)
					{
						if (!(stillDirty.Contains(propertyMap)))
							stillDirty.Add(propertyMap);
						return;
					}
				}
			}
			if (oldList != null)
			{
				foreach (object value in oldList)
				{
					if (!(newList.Contains(value)))
					{
						sqlAndParams = new SqlStatementAndDbParameters() ;
						parameters = new ArrayList() ;
						sql = GetRemoveCollectionValueStatement(obj, propertyMap, value, parameters);
						sqlAndParams.SqlStatement = sql;
						sqlAndParams.DbParameters = parameters;
						sqlAndParamsList.Add(sqlAndParams);
					}
				}
			}
			if (newList != null)
			{
				foreach (object value in newList)
				{
					if (!(oldList.Contains(value)))
					{
						sqlAndParams = new SqlStatementAndDbParameters() ;
						parameters = new ArrayList() ;
						sql = GetInsertCollectionValueStatement(obj, propertyMap, value, parameters);
						sqlAndParams.SqlStatement = sql;
						sqlAndParams.DbParameters = parameters;
						sqlAndParamsList.Add(sqlAndParams);
					}
				}
			}
			if (stillDirty.Contains(propertyMap))
				stillDirty.Remove(propertyMap);

		}
Ejemplo n.º 2
0
		protected virtual void GetInsertCollectionPropertyStatements(object obj, IPropertyMap propertyMap, ArrayList sqlAndParamsList, IList stillDirty)
		{
			IObjectManager om = m_SqlEngineManager.Context.ObjectManager;
			IListManager lm = m_SqlEngineManager.Context.ListManager;
			IList newList = (IList) om.GetPropertyValue(obj, propertyMap.Name);
			string sql = "";
			IList parameters;
			SqlStatementAndDbParameters sqlAndParams;
		
			if (!(propertyMap.ReferenceType == ReferenceType.None))
			{
				foreach (object value in newList)
				{
					if (om.GetObjectStatus(value) == ObjectStatus.UpForCreation)
					{
						stillDirty.Add(propertyMap);
						return;
					}
				}
			}
			foreach (object value in newList)
			{
				parameters = new ArrayList() ;
				sqlAndParams = new SqlStatementAndDbParameters() ;
				sql = (GetInsertCollectionValueStatement(obj, propertyMap, value, parameters));
				sqlAndParams.SqlStatement = sql;
				sqlAndParams.DbParameters = parameters;
				sqlAndParamsList.Add(sqlAndParams);
			}
		}