0

当我尝试将新用户保存在数据库中时,我遇到了问题。我的代码:

if (!user.ValidateUser(username, password))
{
    using (var session = NHibernateHelper.OpenSession())
    {
        User u = new User();
        u.Name = username;
        u.Email = string.Empty;
        u.Password = "123456";
        using (var transact = session.Transaction)
        {
            session.SaveOrUpdate(u); // I have an exception in this line
            transact.Commit();
        }
    }
}

错误:

集合不能为空。参数名称:c

如何在数据库中保存新用户?

PSsession.Save(user1);也给我这个例外。

更新:用户类

public partial class User
{
    public User()
    {
        this.CurrentTestings = new HashSet<CurrentTesting>();
        this.ResultsSet = new HashSet<ResultTesting>();
    }

    public virtual int Id { get; set; }
    public virtual string Name { get; set; }
    public virtual string Password { get; set; }
    public virtual string Email { get; set; }

    public virtual ICollection<CurrentTesting> CurrentTestings { get; set; }
    public virtual ICollection<ResultTesting> ResultsSet { get; set; }
}
4

2 回答 2

3

也许“用户”类有一些引用,例如:

class User
{
  IList<T> T;
}

尝试用构造器初始化这个字段:

class User
{
  public User
  {
    T = new List<T>();
  }
  IList<T> T;
}
于 2012-04-13T10:29:07.853 回答
1

在我的情况下,我需要将集合 initzialize 从 Hashset 更改为 Hashedset。

于 2013-10-17T14:17:19.383 回答