EF&LINQ開發實戰 Part3
<Linq To SQL>
對資料庫的操作不外乎C(建立)、R(讀取)、U(修改)、D(刪除)…,學習EF也不免其俗的要對EF進行CRUD操作。
1.首先建立Employee Table:
2.產生全域連線字串(dbConn)及DataContext(dc):
static string dbConn = @"Data Source=XXX.mdf;Integrated Security=True;User Instance=True;";
static DataContext dc = new DataContext(dbConn);
3.產生Employee(CEmployee)類別:
[Table(Name = "Employee")]
public class CEmployee
{
[Column(IsPrimaryKey = true)]//PK
public int ? EmpID;
[Column]
public string Name = "";
[Column]
public int Salary = 0;
}
4.產生Create(C)方法:
static void Create()
{
CEmployee emp = new CEmployee(); //new CEmployee
emp.EmpID = 2; //賦予員工編號
emp.Name = "Kiwi"; //賦予員工姓名
emp.Salary = 10000; //賦予員工薪水
Table<CEmployee> Tbemp = dc.GetTable<CEmployee>();//一定要先取得Employee型別的物件集合
Tbemp.InsertOnSubmit(emp); //塞入一筆資料
dc.SubmitChanges(); //確定修改
Console.WriteLine("資料新增完成 ... ");
}
5. 產生Read(R)方法;藉由傳入的員工編號找到該筆員工資料(EmpID==id):
static CEmployee Read(int id)
{
return dc.GetTable<CEmployee>().Where(e => e.EmpID==id).FirstOrDefault();
}
6.產生Update(U)方法;藉由傳入的CEmployee物件,更改Salary:
static void Update(CEmployee emp, int UpSalary)
{
emp.Salary = UpSalary;
dc.SubmitChanges();
Console.WriteLine("資料修改完成 ... ");
}
7.產生Delete(D)方法;藉由傳入的CEmployee物件,刪除該筆員工資料:
static void Delete(CEmployee emp)
{
dc.GetTable<CEmployee>().DeleteOnSubmit(emp);
dc.SubmitChanges();
Console.WriteLine("資料刪除完成 ... ");
}
主程式如下:
static void Main(string[] args)
{
//C 新增
Create();
Console.WriteLine("目前共有"+dc.GetTable<CEmployee>().Count()+"筆資料");
//R 讀取
CEmployee emp = Read(2);
Console.WriteLine(emp.Name);
Console.WriteLine("原有薪水:"+emp.Salary+"元");
//U 修改(薪水)
Update(emp, 30000);
Console.WriteLine(emp.Name);
Console.WriteLine("調整薪水後:" + emp.Salary);
//D 刪除
Delete(emp);
Console.WriteLine("目前共有" + dc.GetTable<CEmployee>().Count() + "筆資料");
Console.Read();
}
結果: