StateServer中的MongoRepository实体

本文关键字:实体 MongoRepository 中的 StateServer | 更新日期: 2023-09-27 18:21:42

我有一个MVC项目,它的User类标记为[Serializable]

这个User类继承自MongoRepository的"Entity"类,如文档中所述。

但是,当我尝试通过StateServer将User类的实例保存到会话时,我会得到一个错误,即该对象不可序列化。

我是MongoDB和MongoRepository的新手,所以我不确定是否可以在这里做些什么来使用户类的实例可序列化。

样本代码:

[Serializable]
public class SiteUser : Entity
{
   public string username { get; set; }
}
public ActionResult Index()
{
  MongoRepository<SiteUser> userRepo = new MongoRepository<SiteUser>();
  SiteUser user = userRepo.First(m => m.username == "myusername");
  Session["MyUser"] = user; // This won't work due to the "Entity" link.
  return View();
}

StateServer中的MongoRepository实体

实现接口IEntity,而不是从Entity继承,这样就不依赖于Entity基类。

[Serializable]
public class SiteUser : IEntity
{
   public string Id { get; set; }
   public string username { get; set; }
}

此外,由于1.5.1,Entity类也被标记为可序列化。