1.备忘录类
namespace Data
{
/// <summary>
/// 备忘录模式:事实上我觉得这个东西没什么用,安照这种方式进行备份,会因为
/// 值类型与引用类型的不同导致数据丢失。要暂存一样数据,其实方式还能更简单
/// </summary>
public class Memorandum
{
public string LastName;
public Memorandum(string lastName)
{
LastName = lastName;
}
}
/// <summary>
/// 用来在内存中暂留一个备忘录信息
/// </summary>
public class CreateMemorandum
{
public Memorandum memorandum { get; set; }
}
/// <summary>
/// 数据恢复与备份
/// </summary>
public class ExEmployees
{
//原始数据
public string LastName;
/// <summary>
/// 保存原始数据
/// </summary>
/// <param name="employeesObj"></param>
/// <returns></returns>
public Memorandum SaveMemorandum()
{
return new Memorandum(LastName);
}
/// <summary>
/// 恢复数据
/// </summary>
/// <param name="memorandumObj"></param>
/// <returns></returns>
public string RecoveryData(Memorandum memorandumObj)
{
LastName = memorandumObj.LastName;
return LastName;
}
}
public class OperateMSSQL
{
public Employees GetObj()
{
NorthwindEntities db = new NorthwindEntities();
Employees e = db.Employees.Where(c => c.EmployeeID == 48).FirstOrDefault();
return e;
}
}
}
2.调用
static void Main(string[] args)
{
Employees employees = new OperateMSSQL().GetObj();
ExEmployees exEmployees = new ExEmployees();
//设置要备份对象的初始值
exEmployees.LastName = employees.LastName;
//这里将存有备份数据的类进行暂存
CreateMemorandum createMemorandum = new CreateMemorandum();
createMemorandum.memorandum = exEmployees.SaveMemorandum();
//修改数据
Console.WriteLine("修改后的名字:{0}", exEmployees.LastName = "XXXXXXX");
//进行恢复
string ee = exEmployees.RecoveryData(createMemorandum.memorandum);
Console.WriteLine("恢复后的名字:{0}", ee);
Console.ReadKey();
}