/*
* Namespace Summary
* Copyright (C) 2005+ Bogdan Damian Constantin
* E-Mail: damianbcpetro@gmail.com
* WEB: http://www.sourceforge.net/projects/dataholder
*
* This library is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License 2.1 or later, as
* published by the Free Software Foundation. See the included License.txt
* or http://www.gnu.org/copyleft/lesser.html for details.
*
*/
using System;
namespace DataHolder.DataPersistence.DBAProvider{
/// <summary>
/// Summary description for GenericDataPropertiesHolder.
/// </summary>
public class GenericDataPropertiesHolder
{
public GenericDataPropertiesHolder(Type pl_DataType)
{
l_DataType = pl_DataType;
}
public GenericDataPropertiesHolder(Type pl_DataType, PersistenceProperty pl_SelectProperty,
PersistenceProperty pl_InsertProperty, PersistenceProperty p_UpdateProperty,
PersistenceProperty p_DeleteProperty, DataRelation [] p_TypeDataRelations):this(pl_DataType, pl_SelectProperty, pl_InsertProperty, p_UpdateProperty, p_DeleteProperty)
{
l_TypeDataRelations = p_TypeDataRelations;
}
/// <summary>
///
/// </summary>
/// <param name="pl_DataType"> must be a data entity derived type </param>
/// <param name="pl_SelectProperty"></param>
/// <param name="pl_InsertProperty"></param>
/// <param name="p_UpdateProperty"></param>
/// <param name="p_DeleteProperty"></param>
public GenericDataPropertiesHolder(Type pl_DataType, PersistenceProperty pl_SelectProperty,
PersistenceProperty pl_InsertProperty, PersistenceProperty p_UpdateProperty,
PersistenceProperty p_DeleteProperty):this(pl_DataType)
{
l_SelectProperty = pl_SelectProperty;
l_InsertProperty = pl_InsertProperty;
l_UpdateProperty = p_UpdateProperty;
l_DeleteProperty = p_DeleteProperty;
}
/// <summary>
/// Use the same p_Property for all
/// </summary>
/// <param name="pl_DataType">must be a data entity derived type</param>
/// <param name="p_Property"></param>
public GenericDataPropertiesHolder(Type pl_DataType, PersistenceProperty p_Property)
:this(pl_DataType, p_Property, p_Property, p_Property, p_Property)
{
}
/// <summary>
/// Use the same p_Property for all
/// </summary>
/// <param name="pl_DataType">must be a data entity derived type</param>
/// <param name="p_Property"></param>
public GenericDataPropertiesHolder(Type pl_DataType, PersistenceProperty pl_SelectProperty, PersistenceProperty p_SaveProperty)
:this(pl_DataType, pl_SelectProperty, p_SaveProperty, p_SaveProperty, p_SaveProperty)
{
}
/// <summary>
/// Autocreates the persistence properties from the data type, the table name
/// is used for all select, insert, update and delete clauses
/// </summary>
/// <param name="pl_DataType"> must be a data entity derived type</param>
/// <param name="FromClause"> the table name</param>
public GenericDataPropertiesHolder(Type pl_DataType, string tablename)
{
l_DataType = pl_DataType;
l_SelectProperty = new PersistenceProperty(new DBDataSource(tablename), pl_DataType, System.Data.UpdateRowSource.FirstReturnedRecord);
l_InsertProperty = l_SelectProperty;
l_UpdateProperty = l_SelectProperty;
l_DeleteProperty = l_SelectProperty;
}
protected Type l_DataType;
public Type DataType
{
get{return l_DataType;}
}
protected PersistenceProperty l_SelectProperty;
public PersistenceProperty SelectProperty
{
get{return l_SelectProperty;}
set{l_SelectProperty = value;}
}
protected PersistenceProperty l_InsertProperty;
public PersistenceProperty InsertProperty
{
get{return l_InsertProperty;}
set{l_InsertProperty = value;}
}
protected PersistenceProperty l_UpdateProperty;
public PersistenceProperty UpdateProperty
{
get{return l_UpdateProperty;}
set{l_UpdateProperty = value;}
}
protected PersistenceProperty l_DeleteProperty;
public PersistenceProperty DeleteProperty
{
get{return l_DeleteProperty;}
set{l_DeleteProperty = value;}
}
protected DataRelation [] l_TypeDataRelations = null;
public DataRelation [] TypeDataRelations
{
get{return l_TypeDataRelations;}
set{l_TypeDataRelations = value;}
}
}
}
|