#region Copyright (C) 2003 Yuriy Baltovskyy <bym@itcs.com.ua>
/*
* Ormyx for .NET - Object Relational Mapping
* Copyright (C) 2003 Yuriy Baltovskyy
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#endregion
using System;
using System.Data;
using System.Collections;
using Ormyx.Net.Metadata;
using Ormyx.Net.Sql;
namespace Ormyx.Net.Mapper.Writer.Deleter{
/// <summary>
/// Summary description for CollectionMtoMDeleter.
/// </summary>
public class CollectionMtoMDeleter : BaseFieldWriter
{
public CollectionMtoMDeleter(CollectionMtoMMapping collectionMtoMMapping) :
base(collectionMtoMMapping)
{
}
public override void Process(IWriteContext processContext)
{
object parentObjectReferenceKey = CollectionMtoMMapping.EnclosingClassMapping.GetFieldValue(CollectionMtoMMapping.ForeignKeyField, processContext.ObjectToProcess);
WriteStatement processStatement = new DeleteStatement();
processStatement.AddTable(CollectionMtoMMapping.IndirectionTable);
processStatement.AddWhereField(CollectionMtoMMapping.IndirectionPointToThisField);
processContext.SessionImplementor.ConnectionManagerImplementor.PrepareTransactionStatement(processStatement.SqlStatement, parentObjectReferenceKey).ExecuteNonQuery();
}
private CollectionMtoMMapping CollectionMtoMMapping
{
get { return FieldMapping as CollectionMtoMMapping; }
}
}
}
|