从 LiteDB 获取数据
Getting data from LiteDB
我想知道我如何 console.writeline 将数据存储在我的 litedb 数据库文件中。
这是我的POCOClass
[BsonId]
public int Id { get; set; }
public DateTime Updated { get; set; }
public DateTime Last { get; set; }
public override string ToString()
{
return string.Format("Id : {0}, Updated : {1}, Last Message : {2}",
Id,
Updated,
Last);
}
我在数据库中插入信息:
using (var db = new LiteDatabase(_dbLocation))
{
var hist = db.GetCollection<MailBoxInfo>("History");
var mail = new MailBoxInfo
{
Updated = DateTime.Now,
Last = datemsg
};
hist.Insert(mail);
hist.EnsureIndex("Updated");
}
最后,尝试输出它:
using (var db = new LiteDatabase(_dbLocation))
{
var hist = db.GetCollection<MailBoxInfo>("History");
var res = hist.FindById(3);
}
然后我得到异常
"Additional information: Failed to create instance for type
'TanganTask.MailBoxInfo'. Checks if has a public constructor with no
parameters".
我哪里弄错了,如何解决这个问题?
LiteDB 要求您的实体 class 必须是 public
和 public constructor with no parameters
。所以,你 class 必须是:
public class MailBoxInfo
{
[BsonId]
public int Id { get; set; }
public DateTime Updated { get; set; }
public DateTime Last { get; set; }
public override string ToString()
{
return string.Format("Id : {0}, Updated : {1}, Last Message : {2}",
Id,
Updated,
Last);
}
}
默认 classes 是内部的(只是 class MailBoxInfo
)。
我想知道我如何 console.writeline 将数据存储在我的 litedb 数据库文件中。 这是我的POCOClass
[BsonId]
public int Id { get; set; }
public DateTime Updated { get; set; }
public DateTime Last { get; set; }
public override string ToString()
{
return string.Format("Id : {0}, Updated : {1}, Last Message : {2}",
Id,
Updated,
Last);
}
我在数据库中插入信息:
using (var db = new LiteDatabase(_dbLocation))
{
var hist = db.GetCollection<MailBoxInfo>("History");
var mail = new MailBoxInfo
{
Updated = DateTime.Now,
Last = datemsg
};
hist.Insert(mail);
hist.EnsureIndex("Updated");
}
最后,尝试输出它:
using (var db = new LiteDatabase(_dbLocation))
{
var hist = db.GetCollection<MailBoxInfo>("History");
var res = hist.FindById(3);
}
然后我得到异常
"Additional information: Failed to create instance for type 'TanganTask.MailBoxInfo'. Checks if has a public constructor with no parameters".
我哪里弄错了,如何解决这个问题?
LiteDB 要求您的实体 class 必须是 public
和 public constructor with no parameters
。所以,你 class 必须是:
public class MailBoxInfo
{
[BsonId]
public int Id { get; set; }
public DateTime Updated { get; set; }
public DateTime Last { get; set; }
public override string ToString()
{
return string.Format("Id : {0}, Updated : {1}, Last Message : {2}",
Id,
Updated,
Last);
}
}
默认 classes 是内部的(只是 class MailBoxInfo
)。