简单项目的简单数据库访问层封装(一)
时间:2011-03-02 来源:菜鸟老了
各个类及作用如下:
类名:DBHelperModel,访问级别:public,其他:非抽象,可继承。
作用:所有数据库对象模型的基类,用于定义部分公共属性。
//构造函数 1 protected DBHelperModel(){};
2
3 //初始化赋值
4
5 public DBHelperModel(DbType DbValueType, string ParameterName, object ParameterValue)
6 {
7 this.DbValueType = DbValueType;
8
9 this.ParameterName = ParameterName;
10 this.ParameterValue = ParameterValue;
11 }
//属性 1 /// <summary>
2 ///关键字查询时的属性名
3 /// </summary>
4 public string KeyPropertyName { get; set; }
5
6 /// <summary>
7 ///关键字查询时的数据库列名
8 /// </summary>
9 public string KeyPropertyColumnName
10 {
11 get
12 {
13 if (GetMapToModel().ContainsKey(KeyPropertyName))
14 {
15 string name = GetMapToModel()[KeyPropertyName];
16 return name.Contains('.') ? name.Split(new char[] { '.' })[1] : name;
17 }
18 throw new Exception("Argument not find:" + KeyPropertyColumnName);
19 }
20 }
21
22 /// <summary>
23 /// 关键字查询的键值映射关系
24 /// </summary>
25 public DBHelperModel KeyProperty
26 {
27 get
28 {
29 return GetMapToDB().Find(r => r.ParameterName == KeyPropertyColumnName);
30 }
31 }
32
33 public string TabelName { get; set; }
34 /// <summary>
35 /// 数据库字段类型
36 /// </summary>
37
38 public DbType DbValueType { get; set; }
39 /// <summary>
40 /// 数据库字段值
41 /// </summary>
42 public object ParameterValue { get; set; }
43 /// <summary>
44 /// 数据库字段名
45 /// </summary>
46 public string ParameterName { get; set; }
//方法 1 /// <summary>
2 /// 获取数据库表和字段值的映射关系
3 /// </summary>
4 /// <param name="Model"></param>
5 /// <returns></returns>
6 public virtual List<DBHelperModel> GetMapToDB()
7 {
8 return new List<DBHelperModel>();
9 }
10
11 /// <summary>
12 /// 获取数据库字段和对象属性的映射关系 key为属性 value为对应数据库字段
13 /// </summary>
14 /// <param name="dr"></param>
15 /// <returns></returns>
16 public virtual Dictionary<string, string> GetMapToModel()
17 {
18 return new Dictionary<string, string>();
19 }
//使用方法 public partial class Student : DBHelperModel此时,数据库模型封装完成。
{
public Student()
{
TabelName = "student";
}
//public override string TabelName { get { return tabelName; } }
#region Model字段
private string studentId;
private string name;
#endregion
#region Model属性
/// <summary>
///
/// </summary>
public string StudentId
{
get { return studentId; }
set { studentId = value; }
}
/// <summary>
///
/// </summary>
public string Name
{
get { return name; }
set { name = value; }
}
#endregion
#region override //获取数据库字段和对象属性的映射
public override Dictionary<string, string> GetMapToModel()
{
Dictionary<string, string> list = new Dictionary<string, string>();
list.Add("StudentId", "student.student_id");
list.Add("Name", "name");
return list;
} //获取数据库字段、类型和对应属性值。
public override List<DBHelperModel> GetMapToDB()
{
return new List<DBHelperModel>()
{
new DBHelperModel(DbValueType: DbType.AnsiString, ParameterName: "student_id", ParameterValue: StudentId ),
new DBHelperModel(DbValueType:DbType.AnsiString,ParameterName:"name",ParameterValue:Name )
};
}
#endregion
相关阅读 更多 +