[Entity Framework] SQLite 透過 EntityKey 進行資料異動

[Entity Framework] SQLite 透過 EntityKey 進行資料異動

1.EntityKey 類別 也可以讓我們對資料庫進行異動操作,它可以用來識別某個資料欄位,可以用來刪除、修改

2.搭配 ObjectContext.GetObjectByKey 方法 來取得實體索引鍵的物件

跟上篇的 [Entity Framework] SQLite 透過 ObjectContext 進行資料異動 有些許不同,在這理我同樣是使用下列的EDM進行處理。

image_thumb

 

 


實作過程相當簡單,只要建立 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

Image result for microsoft+mvp+logo