C# 有什么方法可以检测LiteDb中的更改吗?
有什么方法可以检测model和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
[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值,您可以跟踪数据库模型版本。有关详细信息,您可以查看此问题: