56 lines
1.1 KiB
C#
56 lines
1.1 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Text;
|
|
using System.Data.SqlClient;
|
|
using Csla;
|
|
|
|
namespace Templates
|
|
{
|
|
[Serializable()]
|
|
class NameValueList : NameValueListBase<int, string>
|
|
{
|
|
#region Factory Methods
|
|
|
|
private static NameValueList _list;
|
|
|
|
public static NameValueList GetNameValueList()
|
|
{
|
|
if (_list == null)
|
|
_list = DataPortal.Fetch<NameValueList>(
|
|
new Criteria(typeof(NameValueList)));
|
|
return _list;
|
|
}
|
|
|
|
public static void InvalidateCache()
|
|
{
|
|
_list = null;
|
|
}
|
|
|
|
private NameValueList()
|
|
{ /* require use of factory methods */ }
|
|
|
|
#endregion
|
|
|
|
#region Data Access
|
|
|
|
protected override void DataPortal_Fetch(object criteria)
|
|
{
|
|
RaiseListChangedEvents = false;
|
|
IsReadOnly = false;
|
|
// TODO: load values
|
|
using (SqlDataReader dr = null)
|
|
{
|
|
while (dr.Read())
|
|
{
|
|
Add(new NameValueListBase<int, string>.
|
|
NameValuePair(dr.GetInt32(0), dr.GetString(1)));
|
|
}
|
|
}
|
|
IsReadOnly = true;
|
|
RaiseListChangedEvents = true;
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
}
|