1.功能类
namespace Data
{
/// <summary>
/// 此操作代表对数据库的增,删,改操作的基类
/// </summary>
public class OperateDB
{
public virtual string OperateData()
{
string result = null;
return result;
}
}
/// <summary>
/// 添加数据类
/// </summary>
public class InsertDB : OperateDB
{
public override string OperateData()
{
NorthwindEntities db = new NorthwindEntities();
Employees e = new Employees();
e.LastName = "yoyozhu";
e.FirstName = "zhushao";
db.AddToEmployees(e);
db.SaveChanges();
return "添加数据成功";
}
}
/// <summary>
/// 删除数据类
/// </summary>
public class DelDB : OperateDB
{
public override string OperateData()
{
NorthwindEntities db = new NorthwindEntities();
Employees e=db.Employees.Where(c=>c.EmployeeID==19).FirstOrDefault();
db.DeleteObject(e);
db.SaveChanges();
return "删除数据成功";
}
}
/// <summary>
/// 修改数据类
/// </summary>
public class UpdateDB : OperateDB
{
public override string OperateData()
{
NorthwindEntities db = new NorthwindEntities();
Employees e = db.Employees.Where(c => c.EmployeeID == 19).FirstOrDefault();
e.LastName = "chuanshi_yoyo";
db.SaveChanges();
return "修改数据成功";
}
}
}
2.工厂类
namespace Data
{
/// <summary>
/// 根据不同的名称创建不同的操作类:
/// 优点:不必使用具体的类去创建该类的实例,而是通过工程类,利用多态性去实例化具体的类
/// 缺点:多一个类,就需要在工厂类中进行修改
/// </summary>
public class ClassFactory
{
public static OperateDB CreateOperateDB(string command)
{
OperateDB db = null;
switch (command)
{
case "add":
db = new InsertDB();
break;
case "del":
db = new DelDB();
break;
case "update":
db = new UpdateDB();
break;
}
return db;
}
}
}
3.功能调用
OperateDB db = ClassFactory.CreateOperateDB("add");
Console.WriteLine(db.OperateData());