我是RavenDB的新手。
当我在会话中调用SaveChanges()
时,它会成功执行,但数据不会存储在数据库中。
我的代码如下:
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();
}
导致问题的原因是什么?
答案 0 :(得分:0)
加载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();
}
答案 1 :(得分:0)
问题在于手动格式化您的id字符串。这是不必要的,因为你的复数形式可能是错误的。
ExampleUser
time
将为空。您应该检查以避免NullReferenceException
。直接加载实体。如果您使用字符串ID,则您拥有完整的文档密钥。如果你使用整数或guid id,Raven有一个重载来为你转换它。
var data = session.Load(time.Id);
它应该可以正常工作。