[英]Any ways to detect changes in LiteDb?
有什么方法可以檢測模型和LiteDb之間的差異?
例如。
[Table('table')]
public class Table
{
public int Id { get; set; }
public string Name { get; set; }
}
liteDb的表具有相同的列。
我想在模型中添加一個新屬性
[Table('table')]
public class Table
{
public int Id { get; set; }
public string Name { get; set; }
public string NewCol { get; set; }
}
我如何檢測到NewCol是最近添加到模型中的,而LiteDb表中沒有相等的列
無法檢測模型上的更改,因為對於LiteDB引擎,這兩個類都將轉換為BsonDocument
, BsonDocument
是將轉換為JSON / BSON並存儲在磁盤上的通用對象表示形式。 在您的示例中,如果您使用第一個模型插入文檔,LiteDB將轉換為:
{ Id: 1, Name: "John" }
在第二個模型中,您將具有:
{ Id: 1, Name: "John", NewCol: "anyvalue" }
在這兩種情況下,都可以加載/保存數據,因為缺少的屬性定義為NULL。
但是,如果需要跟蹤數據庫模型版本,則可以為此使用內部“ UserVersion”。 這是一個簡單的內部int
獲取/設置值,您可以跟蹤數據庫模型的版本。 您可以檢查此問題以獲取更多信息: https : //github.com/mbdavid/LiteDB/issues/778
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.