Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 有什么方法可以检测LiteDb中的更改吗?_C#_Xamarin_Xamarin.forms_Nosql_Litedb - Fatal编程技术网

C# 有什么方法可以检测LiteDb中的更改吗?

C# 有什么方法可以检测LiteDb中的更改吗?,c#,xamarin,xamarin.forms,nosql,litedb,C#,Xamarin,Xamarin.forms,Nosql,Litedb,有什么方法可以检测model和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 st

有什么方法可以检测model和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
,一种将转换为JSON/BSON以存储在磁盘上的通用对象表示。在您的示例中,如果插入带有第一个模型的文档,LiteDB将转换为:

{Id:1,名字:“John”}

在第二个模型中,您将拥有:

{Id:1,Name:“John”,NewCol:“anyvalue”}

在这两种情况下,您都可以加载/保存数据,因为缺少的属性定义为NULL

但是,如果您需要跟踪数据库模型版本,您可以使用内部“UserVersion”来实现这一点。这是一个简单的内部
int
get/set值,您可以跟踪数据库模型版本。有关详细信息,您可以查看此问题: