SaveChanges没有在raven数据库中得到反映
本文关键字:数据库 raven SaveChanges | 更新日期: 2023-09-27 17:52:13
我是RavenDB的新手。
当我在会话中调用SaveChanges()
时,它执行成功,但数据没有存储在DB中。
using (var session = RavenDocumentStore.OpenSession())
{
var time = session.Query<Exampleusers>()
.Where(x => x.Username == userName).FirstOrDefault();
var temp = time.Id;
var data = session.Load<Exampleusers>(
string.Format("Exampleusers/{0}", temp));
data.Expiration = DateTime.Now;
session.SaveChanges();
}
是什么导致了这个问题?
加载Exampleusers时传入temp而不是string.format(…)
using (var session = RavenDocumentStore.OpenSession())
{
var time = session.Query<Exampleusers>()
.Where(x => x.Username == userName).FirstOrDefault();
var temp = time.Id;
var data = session.Load<Exampleusers>(temp);
data.Expiration = DateTime.Now;
session.SaveChanges();
}
问题是手动格式化你的id字符串。这是不必要的,而且很可能是错误的,因为你的复数形式。
- 用单数命名实体。
ExampleUser
- 确保您得到了查询的结果。如果索引过期或没有找到用户名,则
time
为空。您应该检查以避免NullReferenceException
。 -
直接加载实体。如果使用字符串id,则拥有完整的文档键。如果你使用的是整数或guid, Raven有一个重载为你转换它。
var data = session.Load(time.Id);