[Entity Framework] SQLite 透過 EntityKey 進行資料異動
1.EntityKey 類別 也可以讓我們對資料庫進行異動操作,它可以用來識別某個資料欄位,可以用來刪除、修改
2.搭配 ObjectContext.GetObjectByKey 方法 來取得實體索引鍵的物件
跟上篇的 [Entity Framework] SQLite 透過 ObjectContext 進行資料異動 有些許不同,在這理我同樣是使用下列的EDM進行處理。
實作過程相當簡單,只要建立 EntityKey 物件
第一個參數是實體集的名稱,第二個是索引鍵的名稱,第三個是索引值
建立完Entity後則取得實體索引鍵的物件
完整範例如下,範例程式並無防呆,請勿照抄
修改:
{
SQLiteDB_DemoEntities sql = new SQLiteDB_DemoEntities();
EntityKey key = new EntityKey("SQLiteDB_DemoEntities.Contact", "ContactID", 111);
var id = sql.GetObjectByKey(key);
((Contact)id).ContactAddress = "EntityKey 修改 Address";
int count = sql.SaveChanges();
sql.SaveChanges();
if (count > 0)
MessageBox.Show("資料已修改");
else
MessageBox.Show("無資料被修改");
}
刪除:
{
SQLiteDB_DemoEntities sql = new SQLiteDB_DemoEntities();
EntityKey key = new EntityKey("SQLiteDB_DemoEntities.Contact", "ContactID", 111);
var id = sql.GetObjectByKey(key);
sql.DeleteObject(id);
int count = sql.SaveChanges();
sql.SaveChanges();
if (count > 0)
MessageBox.Show("資料已刪除");
else
MessageBox.Show("無資料被刪除");
}
若有謬誤,煩請告知,新手發帖請多包涵
Microsoft MVP Award 2010~2017 C# 第四季
Microsoft MVP Award 2018~2022 .NET