|
#region Copyright � 2008 Ashu Fouzdar. All rights reserved.
/*
Copyright � 2008 Ashu Fouzdar (ashu.fouzdar@gmail.com). All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. The name of the author may not be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#endregion
using System;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.Data.Common;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Configuration;
using System.Xml;
using System.Xml.Serialization;
using SubSonic;
using SubSonic.Utilities;
namespace aicl.data
{
/// <summary>
/// Strongly-typed collection for the Debit class.
/// </summary>
[Serializable]
public partial class DebitCollection : ActiveList<Debit, DebitCollection>
{
public DebitCollection() {}
}
/// <summary>
/// This is an ActiveRecord class which wraps the Debits table.
/// </summary>
[Serializable]
public partial class Debit : ActiveRecord<Debit>
{
#region .ctors and Default Settings
public Debit()
{
SetSQLProps();
InitSetDefaults();
MarkNew();
}
private void InitSetDefaults() { SetDefaults(); }
public Debit(bool useDatabaseDefaults)
{
SetSQLProps();
if(useDatabaseDefaults)
ForceDefaults();
MarkNew();
}
public Debit(object keyID)
{
SetSQLProps();
InitSetDefaults();
LoadByKey(keyID);
}
public Debit(string columnName, object columnValue)
{
SetSQLProps();
InitSetDefaults();
LoadByParam(columnName,columnValue);
}
protected static void SetSQLProps() { GetTableSchema(); }
#endregion
#region Schema and Query Accessor
public static Query CreateQuery() { return new Query(Schema); }
public static TableSchema.Table Schema
{
get
{
if (BaseSchema == null)
SetSQLProps();
return BaseSchema;
}
}
private static void GetTableSchema()
{
if(!IsSchemaInitialized)
{
//Schema declaration
TableSchema.Table schema = new TableSchema.Table("Debits", TableType.Table, DataService.GetInstance("Default"));
schema.Columns = new TableSchema.TableColumnCollection();
schema.SchemaName = @"dbo";
//columns
TableSchema.TableColumn colvarDebitID = new TableSchema.TableColumn(schema);
colvarDebitID.ColumnName = "DebitID";
colvarDebitID.DataType = DbType.Int32;
colvarDebitID.MaxLength = 0;
colvarDebitID.AutoIncrement = true;
colvarDebitID.IsNullable = false;
colvarDebitID.IsPrimaryKey = true;
colvarDebitID.IsForeignKey = false;
colvarDebitID.IsReadOnly = false;
colvarDebitID.DefaultSetting = @"";
colvarDebitID.ForeignKeyTableName = "";
schema.Columns.Add(colvarDebitID);
TableSchema.TableColumn colvarAccountID = new TableSchema.TableColumn(schema);
colvarAccountID.ColumnName = "AccountID";
colvarAccountID.DataType = DbType.String;
colvarAccountID.MaxLength = 20;
colvarAccountID.AutoIncrement = false;
colvarAccountID.IsNullable = false;
colvarAccountID.IsPrimaryKey = false;
colvarAccountID.IsForeignKey = false;
colvarAccountID.IsReadOnly = false;
colvarAccountID.DefaultSetting = @"";
colvarAccountID.ForeignKeyTableName = "";
schema.Columns.Add(colvarAccountID);
TableSchema.TableColumn colvarAmount = new TableSchema.TableColumn(schema);
colvarAmount.ColumnName = "Amount";
colvarAmount.DataType = DbType.Currency;
colvarAmount.MaxLength = 0;
colvarAmount.AutoIncrement = false;
colvarAmount.IsNullable = false;
colvarAmount.IsPrimaryKey = false;
colvarAmount.IsForeignKey = false;
colvarAmount.IsReadOnly = false;
colvarAmount.DefaultSetting = @"";
colvarAmount.ForeignKeyTableName = "";
schema.Columns.Add(colvarAmount);
BaseSchema = schema;
//add this schema to the provider
//so we can query it later
DataService.Providers["Default"].AddSchema("Debits",schema);
}
}
#endregion
#region Props
[XmlAttribute("DebitID")]
public int DebitID
{
get { return GetColumnValue<int>("DebitID"); }
set { SetColumnValue("DebitID", value); }
}
[XmlAttribute("AccountID")]
public string AccountID
{
get { return GetColumnValue<string>("AccountID"); }
set { SetColumnValue("AccountID", value); }
}
[XmlAttribute("Amount")]
public decimal Amount
{
get { return GetColumnValue<decimal>("Amount"); }
set { SetColumnValue("Amount", value); }
}
#endregion
//no foreign key tables defined (0)
//no ManyToMany tables defined (0)
#region ObjectDataSource support
/// <summary>
/// Inserts a record, can be used with the Object Data Source
/// </summary>
public static void Insert(string varAccountID,decimal varAmount)
{
Debit item = new Debit();
item.AccountID = varAccountID;
item.Amount = varAmount;
if (System.Web.HttpContext.Current != null)
item.Save(System.Web.HttpContext.Current.User.Identity.Name);
else
item.Save(System.Threading.Thread.CurrentPrincipal.Identity.Name);
}
/// <summary>
/// Updates a record, can be used with the Object Data Source
/// </summary>
public static void Update(int varDebitID,string varAccountID,decimal varAmount)
{
Debit item = new Debit();
item.DebitID = varDebitID;
item.AccountID = varAccountID;
item.Amount = varAmount;
item.IsNew = false;
if (System.Web.HttpContext.Current != null)
item.Save(System.Web.HttpContext.Current.User.Identity.Name);
else
item.Save(System.Threading.Thread.CurrentPrincipal.Identity.Name);
}
#endregion
#region Columns Struct
public struct Columns
{
public static string DebitID = @"DebitID";
public static string AccountID = @"AccountID";
public static string Amount = @"Amount";
}
#endregion
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
Ashutosh is an avid programmer, who “lives to code”. One can always find him busy seeking challenging programming assignments on various complex problems ranging from Data management, Classification, Optimization, Security, Network analysis, Distributed computing.
He started his programming stint with “C”; he has also worked on C++, Visual Basic, JAVA, Perl, FoxPro, PASCAL, Shell Scripting, and Perl. Currently, he is proficient and working on C#.
His area of interest includes Distributed Computing, Analytic and Business Intelligence, Large Enterprise System Architectures, Enterprise Content Management.
He is an advocate of Open source and likes to share solutions with open source communities like
1.Stack Overflow
2. nHibernate.
Award's :
Prize winner in Competition "Best article of May 2008"
Articles :
Click to see my CodeProject Articles
Blog :
Share a solution | Explore the .NET world
Link'd :
His Favorite(s) :
nHibernate - The best ORM.
nHibernate Contributed Tools