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();
        }
    }
}

エラー:

コレクションを null にすることはできません。パラメータ名: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

私の場合、コレクションの初期化を Hashset から Hashedset に変更する必要がありました。

于 2013-10-17T14:17:19.383 に答える