簡體   English   中英

有什么方法可以檢測LiteDb中的更改?

[英]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引擎,這兩個類都將轉換為BsonDocumentBsonDocument是將轉換為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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM