Example Data Class (C#) - mpavey/sql-code-gen GitHub Wiki

Data.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.Common;
using Microsoft.Practices.EnterpriseLibrary.Data;
using Sandbox.Utilities;
 
namespace Sandbox
{
	public class Fields
	{
		public Model.Field Get(int FieldID)
		{
			// validate
			if (FieldID < 1)
			{
				return new Model.Field();
			}
 
			// lookup
			List<Model.Field> x = List(FieldID: FieldID);
 
			// return
			if (x.Count > 0)
			{
				return x.First();
			}
			else
			{
				return new Model.Field();
			}
		}
 
		public List<Model.Field> List(Int32 FieldID = 0)
		{
			// variables
			Database DB = DatabaseFactory.CreateDatabase();
			List<Model.Field> Fields = new List<Model.Field>();
 
			// command
			using (DbCommand cmd = DB.GetStoredProcCommand("dbo.Fields_List"))
			{
				// parameters
				DB.AddInParameter(cmd, "@FieldID", DbType.Int32, FieldID);
 
				// execute query and get results
				using (DataTable DT = new DataTable())
				{
					using (IDataReader IDR = DB.ExecuteReader(cmd))
					{
						if (IDR != null)
						{
							DT.Load(IDR);
						}
					}
 
					// convert to business object
					Fields = DT.ToList<Model.Field>().ToList();
				}
			}
 
			// return list
			return Fields;
		}
 
		public int Save(Model.Field Field)
		{
			// variables
			Database DB = DatabaseFactory.CreateDatabase();
			int ReturnValue = -1;
 
			// command
			using (DbCommand cmd = DB.GetStoredProcCommand("dbo.Fields_List"))
			{
				// parameters
				DB.AddInParameter(cmd, "@FieldID", DbType.Int32, Field.FieldID);
 
				// return value parameter
				DB.AddParameter(cmd, "@ReturnValue", DbType.Int32, 4, ParameterDirection.ReturnValue, false, 0, 0, "@ReturnValue", DataRowVersion.Default, null);
 
				// execute query
				DB.ExecuteNonQuery(cmd);
 
				// get return value
				ReturnValue = (int)DB.GetParameterValue(cmd, "@ReturnValue");
			}
 
			// return value
			return ReturnValue;
		}
 
		public int Delete(int FieldID)
		{
			// variables
			Database DB = DatabaseFactory.CreateDatabase();
			int ReturnValue = -1;
 
			// command
			using (DbCommand cmd = DB.GetStoredProcCommand("dbo.Fields_Delete"))
			{
				// parameters
				DB.AddInParameter(cmd, "@FieldID", DbType.Int32, FieldID);
 
				// return value parameter
				DB.AddParameter(cmd, "@ReturnValue", DbType.Int32, 4, ParameterDirection.ReturnValue, false, 0, 0, "@ReturnValue", DataRowVersion.Default, null);
 
				// execute query
				DB.ExecuteNonQuery(cmd);
 
				// get return value
				ReturnValue = (int)DB.GetParameterValue(cmd, "@ReturnValue");
			}
 
			// return value
			return ReturnValue;
		}
	}
}