LiteDB - Update data

要將 LiteDB 內的資料更新,需先將 LiteDB 開啟,取得 Collection,取得 Collection 內的元素,更新元素的屬性值後,再用 Collection.Update 將資料更新回 LiteDB 即可。

1
2
3
4
5
6
7
8

using (var db = new LiteDatabase(dbFile))
{
var collection = db.GetCollection<T>(collectionName);
...
collectionItem.Property = newValue;
collection.Update(collectionItem);
}


像是下面這個範例就會將資料寫入,將塞入的資料做個變更。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
using System;

namespace LiteDB.Demo2
{
class Program
{
static void Main(string[] args)
{
using (var db = new LiteDatabase("Person.db"))
{
var persons = db.GetCollection<Person>("persons");

var firstPerson = collection.FindById(1);

firstPerson.Name = "Larry Nung";
firstPerson.NickName = "Larry";
persons.Update(firstPerson);
}
}
}

public class Person
{
public int ID { get; set; }
public String Name { get; set; }
public String NickName { get; set; }
}
}


若是要更新為全新的資料,也可以建立個資料物件指定 ID 將之替換。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
using System;

namespace LiteDB.Demo2
{
class Program
{
static void Main(string[] args)
{
using (var db = new LiteDatabase("Person.db"))
{
var persons = db.GetCollection<Person>("persons");

persons.Update(1, new Person()
{
Name = "Larry Nung",
NickName = "Larry Nung"
});
}
}
}

public class Person
{
public int ID { get; set; }
public String Name { get; set; }
public String NickName { get; set; }
}
}


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
using System;

namespace LiteDB.Demo2
{
class Program
{
static void Main(string[] args)
{
using (var db = new LiteDatabase("Person.db"))
{
var persons = db.GetCollection<Person>("persons");

persons.Update(new Person()
{
ID = 1,
Name = "Larry Nung",
NickName = "Larry Nung"
});
}
}
}

public class Person
{
public int ID { get; set; }
public String Name { get; set; }
public String NickName { get; set; }
}
}