我想知道如何将 console.writeline 数据存储在我的 litedb 数据库文件中。这是我的 POCO 课程
[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);
}
Run Code Online (Sandbox Code Playgroud)
我在数据库中插入信息:
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");
}
Run Code Online (Sandbox Code Playgroud)
最后,尝试输出它:
using (var db = new LiteDatabase(_dbLocation))
{
var hist = db.GetCollection<MailBoxInfo>("History");
var res = hist.FindById(3);
}
Run Code Online (Sandbox Code Playgroud)
然后我得到异常
“附加信息:无法为类型‘TanganTask.MailBoxInfo’创建实例。检查是否有一个没有参数的公共构造函数”。
我错在哪里以及如何解决这个问题?
LiteDB 要求您的实体类必须public带有public constructor with no parameters. 所以,你的班级必须是:
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);
}
}
Run Code Online (Sandbox Code Playgroud)
默认类是内部类(只是class MailBoxInfo)。
| 归档时间: |
|
| 查看次数: |
3938 次 |
| 最近记录: |